Nacos

Nacos是SpringCloudAlibaba的组件,而SpringCloudAlibaba也遵循SpringCloud中定义的服务注册、服务发现规范。因此使用Nacos和使用Eureka对于微服务来说,并没有太大区别。

主要差异在于:

  • 依赖不同
  • 服务地址不同

配置方式

在父工程引入依赖 <artifactId>spring-cloud-alibaba dependencies</artifactId>
子工程插入 <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>

在子工程的配置文件指定nacos地址
spring: cloud: nacos: server-addr: localhost:8848

Nacos就将同一机房内的实例 划分为一个集群

也就是说,user-service是服务,一个服务可以包含多个集群,如杭州、上海,每个集群下可以有多个实例,形成分级模型

通过编写配置文件来指定集群
discovery: clusterName: HZ

修改负载均衡原则

点击查看代码
userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则

Nacos配置管理

统一配置管理
配置更改热更新
首先在nacos网页端编写配置文件,注意文件名的设置(服务名-环境名.文件扩展名 userservice-dev.yaml)
然后引入依赖
spring-cloud-starter-alibaba-nacos-config
编写配置文件bootstrap.yml(先于application.yml文件加载)
指定 其服务名,环境名,文件扩展名

点击查看代码
spring:
  application:
    name: userservice
  profiles:
    active: dev
  cloud:
    nacos:
      server-addr: localhost:8848
      config:
        fileExtension: yaml
配置自动更新 - 第一种需要在@Value变量所在的**类**上添加@RefreshScope注解 - 使用@ConfigurationProperties注入,自动更新

多环境配置共享
微服务启动会读取多个配置文件
顺序如下服务名-环境名.文件扩展名
服务名.文件扩展名
所以其服务名.文件扩展名 文件必定被读取
该文件用来实现多环境共享
配置文件优先级
服务名-环境名.文件扩展名 >服务名.文件扩展名 >本地文件

posted @ 2023-07-01 18:00  K-smiles  阅读(15)  评论(0)    收藏  举报