开发者学堂课程【Spring Cloud Alibaba Nacos 详解(上):应用于分布式系统-配置优先级】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/724/detail/12928
应用于分布式系统—配置优先级
内容介绍
一.优先级简介
二.共享 Data ID
三.优先级问题
四.优先级顺序
五.关闭配置
一.优先级简介
微服务自己通过服务名加扩展名然后找到一个 Dta ID ,一种是扩展的 Data ID 的方式,一种是共享的 Data ID 的方式,这些都可以指定 Data ID ,这几种方式是有一种优先级的。
二.共享 Data ID
扩展 Data ID ,扩展是以数组的方式去扩展,C就是根据内部规则,根据我们说的项目名加扩展名的方式对应到一个 Data ID ,这几种方式都可以来用 Data ID ,这三种方式放到一起有一个优先级,C>B>A,就是通过内部规则,通过项目的名称加扩展名引用到的扩展地球,这个配置文件的信息加载了优先级最高,其次是扩展的这一个,最后才是贡献的。
三.优先级问题
优先级最高 如果项目名加扩展名对应的 Service.yml 里面,有一个配置信息比如叫Name,叫张三,那扩展的配置文件里边,也有一个Name 叫李四,此时应用程序加载到的 Name 所对应的key是张三还是李四,根据刚才我们所说的优先级最高的是 C,内部规则所对应的这个 Service1.ynm 加载到的所以应该是张三,而不是扩展到的李四,这就叫做加载的优先级问题。
四.优先级顺序
扩展的和共享的是优先级,那扩展的也有很多文件,如果扩展的文件里面也有重复的,那那个优先,是以n的值越大优先级越高,n就是0,1,2,n 现在是2,那么我现在的数组就是三个元素,以2n的优先级最高,也就是n等于2的优先级最高,
common01里面有个叫张三,common03里面有个叫李思,现在内部规则对应的里面没有name,01里面有张三,02里面有李四,03里面有李四,请问现在加载完之后我们要取出 Name 的值是张三还是李四,n的值越大优先级越高,一定是取出来03的李四,不是张三的,现在演示一下效果,因为配置很有可能重复,重复的话要清楚要以谁为准,谁的优先级高,就以谁为准,我们现在先去演示扩展以n 最大的优先级的事,共享的 Data ID 就不演示了,建议大家用扩展的 Data ID 的方式,所以这里面我们演示一般,我们修改03,01当中有一个 Age 等于12,我们加一个 Age 等于15,此时我们三个配置文件,01里面有一个配置等于12,03当中有一个配置文件等于15,现在要加 Age 这个值那么就要以优先级高的为准,n 大的是谁,n 大的以n为准,属性是15,所以很关键,重启然后刷新,刷新之后看见 Age不是12,就变成了15,这就是我们说的优先级就测试出来了。
现在再看优先级内部规则,对应的优先级最高,就是项目的名称加扩展名就是Serbicevice1.ynm,如果说做一件事把里面加一个 Age 等于25,这个时候发布刷新变成了25了,因为我们说了内部规则对应的文件和扩展的文件比起来内部规则的这个最优先,这里面也有Age,另一边也有 Age,这个 Age 就是25,这就是我们说的配置的优先级。
五.关闭配置
比如说我们不再使用优先级的配置就可以关闭就可以了,我们就不从这个里面读取,这就是我们说的关闭配置。
我们就学习完了 Nacos 配置应用于分布式系统当中的各种方法,一个是微服务中的读取配置,这里面使用的Alibaba 给我们提供的整合的客服端给我们整合的配置,另一个就是自定义扩展配置,这样可以使配置服务有多个ID,就可以把我们公共的配置文件放在当中,由某个微服务去引用,这里其实就已经学会了针对分布式系统当中如何使用, Nacos 的方法。