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


配置中心将配置从各应用中剥离出来 , 对配置进行统一管理 , 应用自身不需要自己去管理配置
从图中我们总结流程如下:

  • 用户在配置中心更新配置信息
  • A 服务和 B 服务及时得到配置更新通知 , 从配置中心获取更新
发布配置
微服务新秀之Nacos,看了就会,我说的文章插图
  • 步骤1中我们可以创建命名空间 , 命名空间(NameSpace)是用于隔离多个环境的(如开发、测试、生产) , 而每个应用在不同环境的同一配置(如数据库配置)的值是不一样的 。
  • 步骤2中我们可以切换不同命名空间来发布不同配置 , 命名空间下类似 UUID 的一串便是每个命名空间的唯一ID 。
  • 步骤3中我们可以点击发布配置 , 其中 DataId 和 group 是必填项

微服务新秀之Nacos,看了就会,我说的文章插图
完成上面三个步骤后我们便可以看到生成了一条刚刚配置过的信息
获取配置然后我们在项目中便可读取配置中的内容 , 步骤如下:
  • 步骤1
在 pom 文件中引入 nacos-client包:
com.alibaba.nacosnacos-client1.1.3
  • 步骤2
通过 nacos-client 包下提供的 API , 来获取配置:
public static void main(String[] args) throws NacosException {//使用nacos client远程获取nacos服务上的配置信息//nacos server地址String serverAddr = "127.0.0.1:8848";//data idString dataId = "application-dev.properties";//groupString group = "DEFAULT_GROUP";//namespaceString namespace = "dfa1c276-69f7-47d6-9903-6850b9c248f7";Properties properties =new Properties();properties.put("serverAddr",serverAddr);properties.put("namespace",namespace);//获取配置ConfigService configService = NacosFactory.createConfigService(properties);// String dataId, String group, long timeoutMsString config = configService.getConfig(dataId, group, 5000);System.out.println(config);}/* OUTPUT:spring.datasource.mysql.driverClassName = com.mysql.cj.jdbc.Driver*/配置的管理模型如下图所示:
微服务新秀之Nacos,看了就会,我说的文章插图
  • 命名空间(NameSpace)
命名空间(NameSpace)用于不同环境(开发环境、测试环境和生产环境)的配置隔离 。 不同的命名空间下 , 可以存在相同名称的配置分组(Group)或配置集 。
  • 配置分组(Group)
配置分组是对配置集进行分组 , 不同的配置分组下可以有相同的配置集(DateId) 。 默认的配置分组名称为 DEFAULT_GROUP 。 用于区分不同的项目或应用 。
  • 配置集(DataId)
在系统中 , 一个配置文件通常就是一个 配置集 , 一个配置集可以包含了系统的各种配置信息 , 例如一个配置集可能包含了数据源、线程池、日志级别等配置项 。 每个配置集都可以定义一个有意义的名称 。
微服务新秀之Nacos,看了就会,我说的文章插图
分布式配置在了解通过 Nacos 集中管理多个服务的配置之前 , 我们先大概了解下以下概念:
传统单体架构
微服务新秀之Nacos,看了就会,我说的文章插图
所有功能模块打包到一起并放在一个 web 容器中运行 , 所有功能模块使用同一个数据库 。