内容简介:在上文本文主要内容涉及如下:Nacos 提供了动态配置服务,能让我们可以实时进行服务应用的配置变更,让配置管理变得更加高效和快捷。它基于 key/value 方式存储应用配置和其他元数据信息,为分布式系统中的外部化配置提供服务器端和客户端支持。
在上文 Java微服务新生代之Nacos 已经介绍了微服务框架 Nacos 以及它在服务注册与发现的功能,本文将主要介绍它的另一强大功能:配置管理,学习利用 Nacos 如何实现通过统一的管理界面,集中化实现分布式服务的配置维护和实时更新。
本文主要内容涉及如下:
- Nacos配置管理概念介绍
- 如何 Nacos 管理配置
- Nacos 多环境配置管理
介绍Nacos配置管理
Nacos 提供了动态配置服务,能让我们可以实时进行服务应用的配置变更,让配置管理变得更加高效和快捷。它基于 key/value 方式存储应用配置和其他元数据信息,为分布式系统中的外部化配置提供服务器端和客户端支持。
首先了解下 Nacos 在配置管理模块上的几个重要概念,能帮助我们更好的理解和正确的使用 Nacos 进行配置管理。
-
命名空间(Namespace)
用于进行租户粒度的配置隔离,可用于对不同环境配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
-
配置项 (Configuration Item)
一个具体的可配置的参数与其值,通常以 param-key=param-value 的形式存在。例如我们常配置系统的日志输出级别(logLevel=INFO|WARN|ERROR) 就是一个配置项。
-
配置集 (Configuration Set)
一组相关或者不相关的配置项的集合。一个配置文件通常就是一个配置集,它可能包含了数据源、线程池、日志级别等配置项。
-
配置集 ID(Data ID)
某个配置集的标识 ID,用于组织划分系统的配置集。一个系统或者应用可以包含多个配置集。官方推荐采用类 Java 包(如 com.taobao.tc.refund.log.level)的命名规则定义 Data ID 来保证全局唯一性。
-
配置分组(Group)
对配置集进行分组,用于区分 Data ID 相同的配置集。默认采用 DEFAULT_GROUP 。配置分组的常见场景:不同的应用或组件使用了相同的配置类型,如 database_url 配置和 消息队列 Topic 配置等。
启动Nacos配置管理
要使用 Nacos 进行配置管理,首先需要启动 Nacos 服务端,然后客户端接入,关于 Nacos 的服务端启动具体操作可以参见 Java微服务新生代之Nacos 。
启动了 Nacos 服务端,首先我们在 Nacos 控制台上的配置管理里新建一个最简单的配置,如图:
保存成功后能列表里看下创建的配置记录如下:
每个配置集的操作栏都提供了配置的查看修改和清除功能,还有额外的示例代码查看,来引导我们如何在客户端使用 Nacos 读取该配置集,目前只支持 Java,Spring Boot,Spring Cloud,其他语言的版本还在完善语言。
隔离的问题。
-
如果只是一个租户(用户),不同的 namespce 可以对应不同的环境,以此实现环境配置的隔离,效果就跟上节内容:Nacos 多环境配置管理 相似。
-
如果存在多个租户,为每个租户分配不同的 namespace,这样每个租户(用户)的配置数据以及注册的服务数据都会归属到自己的 namespace 下,就可以实现多租户配置数据隔离作用。
注意:Nacos 目前还没实现账号权限的分配和隔离,无法让各租户自己管理自己的配置,这一块功能仍在规划中。
简单介绍之后,再来看下 namespace 相关的最佳实践:
- 如何来获取 namespace 的值。
- namespace 参数初始化方式。
创建命名空间
在 nacos 的控制台左边功能侧看到有一个 命名空间 的功能,点击就可以看到 新建命名空间 的按钮,那么这个时候就可以创建自己的命名空间了。创建成功之后,会生成一个 命名空间ID ,主要是用来避免 命名空间名称 有可能会出现重名的情况。因此当您在应用中需要配置指定的 namespace 时, 填入的是命名空间ID 。
关联命令空间
在没有明确指定 ${spring.cloud.nacos.config.namespace}
配置的情况下, 默认使用的是 Nacos 上 Public 这个namespae。如果需要使用自定义的命名空间,可以通过以下配置来实现:
spring.cloud.nacos.config.namespace=b3404bc0-d7dc-4855-b519-570ed34b62d7 复制代码
该配置必须放在 bootstrap.properties 文件中。此外 spring.cloud.nacos.config.namespace
的值是 namespace 对应的 id。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Java微服务新生代之Nacos
- JVM(六)为什么新生代有两个Survivor分区?
- BAT、独角兽环伺,新生代人脸识别算法公司还有哪些机会?
- BAT、独角兽环伺,新生代人脸识别算法公司的出路在哪?
- 领域驱动设计重焕新生
- 在多技术架构下楼宇对讲获得“新生”
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Linux内核完全注释
赵炯 / 机械工业出版社 / 2005-8 / 42.00元
Linux内核完全注释,ISBN:9787111149682,作者:赵炯编著一起来看看 《Linux内核完全注释》 这本书的介绍吧!