一、配置管理
1.1 SpringBoot
1.1.1 依赖/配置
SpringBoot


Nacos

启动类

application.yml中配置nacos网址

Controller类
使用NacosValue,autoRefleshed为在nacos变更配置后可以自动刷新。

也可以这么配置dataId和自动刷新

1.2 SpringCloud
1.2.1 依赖/配置
1.


注意版本对应

2.SpringCloud的Controller自动刷新要这么写,不使用NacosValue而是使用@RefleshScope注解

3.可以写一个配置类,在要用的时候注入配置类使用get方法即可
1.2.2

1.2.2 按profile拉取配置

1.bootstrap文件如上配置时,优先级为:


2.nacos中的后缀是可以在bootstrap文件中配置的

3.bootstrap文件也可以通过-D来配置
1.2
1.2.3 extension和shared拉取多个配置
1.需要拉取多个配置,例如公共通用的一些配置时
新建一个公共配置



或

注:需要自动刷新时,需把refresh改为true。
2.extension和shared作用是相同的

3.优先级关系

4.file-extension的作用
获取到nacos中的配置内容后,将其转换为指定的形式(前提是配置内容符合对应格式)

主配置

1.2.4 历史版本回滚

1.2.5 监听查询
查询哪台机器在使用该配置

二、服务管理
2.1 Java SDK
2.1.1 服务注册
SpringCloud依赖

写法
clusterName指该服务属于哪个集群

或更细致的

2.1.2 服务发现
查找所有名字为name的、健康的服务

随机查找一个名字为name的、健康的服务

可以修改权重来提高被选中的概率

可以订阅服务,来监听服务的变化

2.2 SpringCloud
2.2.1 服务注册
配置应用名字和地址

2.2.2 服务发现
服务端配置restTemplate Bean

加上LoadBalanced负载均衡(把服务名翻译成具体实例的IP和端口)

用户端配置名字和服务器地址

调用provider服务的hello方法

2.2.3 临时实例与持久实例
临时实例(默认):客户端每5秒发送一次心跳,15秒无心跳变为不健康,30秒无心跳删除实例。
持久实例:该实例不会被删除,下线仅会变为不健康实例。
2.2.4 保护阈值

2.2.5 NacosRule
Nacos提供的负载均衡的规则,按Nacos中设置的权重来随机调用的实例。

2.2.6 Cluster就近访问
用户端可以配置优先访问的集群

2.2.7 订阅者列表
可以看到哪些机器在用服务
