开发者学堂课程【Spring Cloud Alibaba Nacos 详解(上):应用于分布式系统-微服务读取配置】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/724/detail/12926
应用于分布式系统-微服务读取配置
内容介绍
一、如何读取配置
一、如何读取配置
应用程序的获取方式有很多种,我们可以采用直接在启动类上面加一个 restcontroller 下面写几个方法就可以了,这里我们只需要写一个具体的方法,然后方法上面加一个 ultra,双击通过 get 访问,我们用 Getmapping ,在这里注意我们要读取配置的信息,我们可以知道 Spring 有一个 Value 注解,可以读取 Value 值,所以学过的都知道,我们要做的就是用一个符号括住里面写上 Common,那符号里面的配置项就是 Common:name 值就是 Service1,所以这里面就可以写 Common.name. 这里面就是 Key,所以这就读取了 Key 的值。
通过注解读取信息,就是通过 Value 注解读取配置信息。所以就可以直接返回 name就完成了,然后保持一致,前后都是 Configs,然后来看运行,我们访问 Config,看能否把 key的 值返回去,可以看端口是5600,复制在谷歌里面,返回的结果就是service1 Config,Service1 就是我们看见的 value 值,这个就是我们采用 value 读取的配置,读取完如果想改动一下配置,在配置里面我们的配置信息改了,然后刷新并没有改变,可能服务端没有通知程序更改,我们原来看到的配置管理的流程,也就是配置中心里面有一个客服端。
我们加入的这个依赖,就是我们所说的 Nacos config 客服端. Nacos 客服端就会去读取这个配置因为和 Spring 整合了,通过 Value 注解的方式就可以配置信息,现在的问题是我们在 Nacos 上面更改了了配置内容之后现在发现最新的信息不能读取,并不是因为服务端没有通知我们的客服端,来更新配置,Value 注解是比较特殊的, Nacos 服务端是通知了 Nacos 客服端的,只是 Valve 注解没有把最新的配置信息配置进来,所以说如果我们想来实现动态的更新,是需要使用另外的方法,这种方法就是需要使用配置的上下文,然后从环境当中读取配置信息,我们就可以实时来更新,我们将它注进来,这是我们配置的上下文环境,还是 Spring 在这里原来的方法,现在要改成通过上下文环境来获取我们说的配置信息,这样一改就可以实现实时动态。
重启来看一下 刷新可以看到回到当时的流程,然后发布,就可以动态的看见使用 Alibaba 给我们提供的 Nacos 的客服端的方式,来整合 Nacos 服务来获取,刚才演示完就是 Service1 具体的,Service2 的过程跟 Service1是一样的,参考 Service1,自己在 Service2 微服务当中也写一个方法,来读取我们在 Nacos2 当中建的文件当中,看是否能够读取到,这里就完成了整个微服务的流程,发布配置到微服务获取配置的过程。