19 服务实例的权重设置
希望性能好的机器承担更多用户请求。
权重修改为0
作用:不会被访问
使用场景:版本升级时候,停机不会有影响,用户无感知。
20 Nacos-环境隔离
nacos中服务存储和数据存储的最外层都是一个namespace的东西,用来做最外层隔离。
隔离的需求原因
基于环境变化
25 Nacos实现配置管理
统一配置管理
微服务越来越多
配置文件需要修改,但是和多个微服务都有关系。服务改完之后重启,统一管理。
配置更改热更新
配置管理服务
会通知微服务,进行读取配置和热更新。
DataId:配置文件名称(微服务名称) userservice-dev.yaml
group:默认
配置内容:开关进行管理(有热更新需求的)
pattern:
dataformat: yyyy-MM-dd
26 微服务配置拉取
统一配置管理
项目启动-》bootstrap.yml(存放nacos地址)-》读取nacos配置文件-》读取本地配置文件-》创建spring容器-》加载bean
官方:与nacos地址和配置文件有关的所有信息都应该放到bootstrap.yml
step1
引入nacos配置管理依赖
nacos-config
step2
服务名称,开发环境,文件后缀名
resource目录添加bootstrap.yml文件,引导文件,优先级高。
将application.yml重复部分的干掉。
这些决定了程序启动时取nacos读取哪个文件。
测试是否读取到配置
@Value("${pattern.dateformat}")
private String dateformat;
27 配置热更新
配置自动刷新
方式1
@Value所在类添加@RefreshScope
方式2
@ConfigurationProperties注解
@Data
@Compoment
@ConfigurationProperties(prefix="pattern")
public class PatternProperties{
private String dateformat;
}
//使用
@Autowired
private PatternProperties patternProperties;
后续使用
patternProperties.getDateformat;
28 多环境配置共享
微服务启动时从nacos读取多个配置文件。
无论profile如何改变, spring.application.name.yaml这个文件一定会被加载,多环境共享配置可以写入这个文件。
step1
修改patternProperties类
public class PatternProperties{
private String dateformat;
private String envSharedValue;
}
step2
写一个方法,看看是否调用。
多种配置优先级
服务名-profile.yaml>服务名.yaml>本地配置
服务名.yaml 默认配置,多环境共享
服务名-profile.yaml 环境配置