Nacos 基本操作

概念

Nacos是阿里巴巴的产品,现在是springcloud的一个组件,相比于Eureka更加丰富。

启动 (单机启动)

进入nacos\bin目录,cmd进入控制台,输入startup.cmd -m standalone

浏览器输入地址:http://192.168.0.101:8848/nacos/index.html#/login

默认账号密码均为:nacos

springboot中添加nacos

添加依赖

父工程的pom.xml添加依赖:

xml 复制代码
<!-- nacos -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>2.2.5.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

子工程客户端添加依赖:

xml 复制代码
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

修改子工程中的application.yml文件

yaml 复制代码
spring:
    cloud:
      nacos:
        discovery:
          server-addr: localhost:8848

启动测试

分级存储模型

  1. 一级是服务,例如userservice
  2. 二级是集群,例如地点上海或者杭州
  3. 三级是机房,例如杭州的机房部署了userservice服务器

对于同一集群的服务器,消费者会优先调用同一集群的生产者服务器,若同一集群的生产者服务器宕机,则调用其他集群的服务器。

如何修改

在application.xml文件,添加spring.cloud.nacos.discovery.cluster-name属性

查看

负载均衡

设置

修改消费者的apllication.yml,设置Rule

(生产者为userservice,消费者为orderservice)

yaml 复制代码
userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule

NacosRule 策略:

  1. 优先选择同一集群的服务者实例
  2. 本地集群找不到,才回去其他集群查找
  3. 确定好服务者实例后,采用随机选择

相关策略:

权重控制

若权重设为0,理论上消费者不会调用该生产者,那么即使是在白天,也可以进行服务器的升级

环境隔离

复制命名空间id:24a1cb4c-91be-4177-a914-1fbdd4f898c1

application.yml 中添加 namespace: 24a1cb4c-91be-4177-a914-1fbdd4f898c1

热部署

nacoss上新建配置

文本框内容按照自己需求编写

客户端导入依赖

xml 复制代码
<dependency>
    <groupId>com.alibaba.cloud </groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

从application.yml中抽取需要单独修改的配置,bootstrap的优先级高于application

法一:添加注解

@RefreshScope + @Value("${pattern.deteformat}")

法二:方法中注入

多环境配置共享

优先级:服务名-profile.yaml > 服务名.yaml > 本地配置

如: userservice-dev.yaml > userservice.yaml > application.yaml

相关推荐
fashia7 分钟前
Java转Go日记(三十九):Gorm查询
开发语言·后端·golang·go
Kookoos1 小时前
使用 ABP vNext 集成 MinIO 构建高可用 BLOB 存储服务
后端·c#·.net·.netcore·minio·blob
蒂法就是我2 小时前
Spring的后置处理器是干什么用的?扩展点又是什么?
java·后端·spring
CodeLinghu3 小时前
宝塔面板部署前后端项目SpringBoot+Vue2
java·spring boot·后端
嘵奇4 小时前
Spring Boot中Redis序列化配置详解
spring boot·redis·后端
黄暄6 小时前
Linux项目部署全攻略:从环境搭建到前后端部署实战
java·linux·运维·服务器·前端·后端·持续部署
鬣主任7 小时前
入职软件开发与实施工程师了后........
后端
薯条不要番茄酱8 小时前
【SpringBoot】从零开始全面解析SpringMVC (三)
java·spring boot·后端
编程乐学(Arfan开发工程师)9 小时前
10、底层注解-@Conditional条件装配
java·spring boot·后端·架构
帮帮志9 小时前
vue3与springboot交互-前后分离【验证element-ui输入的内容】
spring boot·后端·ui