微服务新秀之Nacos,看了就会,我说的( 四 )

这个是读取指定配置组下的指定配置 , 我们都知道开发讲究高内聚低耦合 , 如果有相同的配置项我们可以独立抽取成一个文件 , 这样我们就得引入多个配置文件 , 当然nacos也是支持的 , 配置如下:
spring:application:name: service_acloud:nacos:config:server-addr: 127.0.0.1:8848# 配置中心地址# spring.application.name + file-extension = service_a.propertiesfile-extension: properties# dataid名称的后缀namespace: dfa1c276-69f7-47d6-9903-6850b9c248f7 # 指定具体的namespacegroup: TEST_GROUP# 通过 ext-config 来配合使用ext-config[0]:data-id: service-common_1.propertiesext-config[1]:data-id: service-common_2.propertiesgroup: GLOBALE_GROUPext-config[2]:data-id: service-common_3.propertiesgroup: REFRESH_GROUPrefresh: true#动态刷新配置注意ext-config 得从 0 开始 , 其中 refresh 标签用来实现动态刷新 , 就是配置文件修改后 , 项目不用重启也能实时读取最新的配置文件 。
可能你会觉得通过 ext-config 有点麻烦 , 需要写那么多 , 为了简化我们还可以使用 shared-dataids 和 refreshable-dataids 实现同上一样的功能 , 如下:
spring:application:name: service_acloud:nacos:config:server-addr: 127.0.0.1:8848# 配置中心地址# spring.application.name + file-extension = service_a.propertiesfile-extension: properties# dataid名称的后缀namespace: dfa1c276-69f7-47d6-9903-6850b9c248f7 # 指定具体的namespacegroup: TEST_GROUPshared-dataids: service-common_1.properties,service-common_2.properties,service-common_3.propertiesrefreshable-dataids: service-common_3.properties通过 shared-dataids 来支持多个共享 Data Id 的配置 , 多个之间用逗号隔开 。通过 refreshable-dataids 来支持哪些共享配置的 Data Id 在配置变化时 , 应用中是否可动态刷新 , 感知到最新的配置值 , 多个 Data Id 之间用逗号隔开 。 如果没有明确配置 , 默认情况下所有共享配置的 Data Id 都不支持动态刷新 。
配置项的优先级
#方式1file-extension: properties# dataid名称的后缀namespace: dfa1c276-69f7-47d6-9903-6850b9c248f7 # 指定具体的namespacegroup: TEST_GROUP#方式2ext-config[0]:data-id: service-common_1.propertiesext-config[1]:data-id: service-common_2.propertiesgroup: GLOBALE_GROUPext-config[2]:data-id: service-common_3.propertiesgroup: REFRESH_GROUPrefresh: true#动态刷新配置#方式3shared-dataids: service-common_1.properties,service-common_2.properties,service-common_3.propertiesrefreshable-dataids: service-common_3.properties以上我们了解到了 nacos 有三种配置方式 , 其中优先级:
方式1 > 方式2(内部比较:n越大 , 优先级越高) > 方式3
以上我们已经了解完了Nacos作为配置中心的使用 , 接下来我们来看看Nacos作为服务的注册中心有什么奥秘!
三、服务发现什么是服务发现在微服务架构中 , 整个系统会按职责划分为多个服务 , 通过服务之间且做来实现业务目标 。 这样在我们的代码中免不了要进行服务间的远程调用 , 服务的消费方要调用服务的生产方 , 为了完成这一次请求 , 消费方需要知道服务生产方的网络位置(IP地址和端口号)
微服务新秀之Nacos,看了就会,我说的文章插图
服务发现中心对比
微服务新秀之Nacos,看了就会,我说的文章插图
服务发现入门百说不如一练 , 咱们话不多说 , 直接上代码: