Nacos 配置中心
简介说明
平台部署的工程有十几个,本地配置文件就得维护十几份;其中有公共的配置,改起来头疼而且无法进行版本管理;这时候就需要一个统一的配置中心进行管理,目前常用的开源服务有:[[Nacos 注册中心]] & [[Apollo 入门]]
服务对比 | Apollo | Nacos |
---|---|---|
开源时间 | 2016.5 | 2018.6 |
配置实时推送 | 支持:HTTP 长轮询 1s 内 | 支持:HTTP 长轮询 1s 内 |
版本管理 | 自动管理 | 自动管理 |
配置回滚 | 支持 | 支持 |
灰度发布 | 支持 | 待支持 |
权限管理 | 支持 | 待支持 |
多环境 | 支持 | 支持 |
监听查询 | 支持 | 支持 |
多语言支持 | Go、C++、Python、Java、.Net、OpenAPI | Python、Java、NodeJs、OpenAPI |
高可用最小集群数 | Config*2 & Admin*3 & Portal*2 & MySQL=8 | Nacos*3 & MySQL=4 |
通信协议 | HTTP | HTTP |
数据一致性 | 数据库模拟消息队列,Apollo 定时读消息 | HTTP 异步通知 |
单机读:TPS | 9000 | 15000 |
单机写:TPS | 1100 | 1800 |
三节点读 | 27000 | 45000 |
三节点写 | 3300 | 5600 |
从上述表格不难看出 Nacos & Apollo 功能上几乎没什么差异,但性价比上 Nacos 远优于 Apollo,刚好注册中心用的就是 Nacos
- 基于 dataId 为 yaml 的文件扩展名配置方式
- 支持配置的动态更新
- 支持 profile 粒度
- 支持自定义 namespace
开始使用
::: tip 改造起来其实很简单 - 先安装启动 Nacos 服务:Nacos 安装部署 & 项目实践
- 然后根据不同的环境创建不同的工作空间(也支持配置组、profile 等)
- 创建公共配置文件,如数据库等中间件的连接信息:common.properties
- 再将原来的配置整理修改好,重名为工程名导入到 Nacos 配置列表中
- 启动集成好的后端服务
:::集成服务
添加依赖
1
2
3
4<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>服务地址
需要先在工程配置文件添加服务地址:bootstrap.properties::: note 特别说明:使用域名的方式来访问 Nacos 时,80、443 等常用端口也不能省略1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
spring.application.name=nacos-config
#死否启用服务,默认开启,false 关闭
spring.cloud.nacos.config.enabled = true
spring.cloud.nacos.config.server-addr = 127.0.0.1:8848
spring.cloud.nacos.config.username = nacos
spring.cloud.nacos.config.password = nacos
#命名空间 ID,默认 public
spring.cloud.nacos.config.namespace = public
#配置文件默认扩展名,默认 properties,可以修改为 yaml
spring.cloud.nacos.config.file-extension = yaml
spring.cloud.nacos.config.refresh.enabled = true
#配置文件组,默认 DEFAULT_GROUP
spring.cloud.nacos.config.group = junyu
#多(公共)配置加载
spring.cloud.nacos.config.extension-configs[0].data-id=common.properties
spring.cloud.nacos.config.extension-configs[0].group=junyu
如 Nacos 的域名为 nacos.yuwei.cc,端口为 80,server-addr 应该配置为:nacos.yuwei.cc:80
:::创建配置
浏览器访问 ip:8848/nacos,配置管理 -> 配置列表 -> 导入配置(或者重新创建)
更多使用见官方文档:Nacos-config配置管理
发布
通过新建或者在原有配置进行编辑,点击发布,开启spring.cloud.nacos.config.refresh.enabled = true
的话不需要重启后端服务回滚
从配置管理 -> 历史版本中找到要回滚的配置,点击右边的回滚按钮,一键进行回滚
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 君玉自牧!