配置中心:Nacos
原创大约 3 分钟
Nacos能做什么


配置功能对比
Spring Cloud Config | Apollo | Nacos | |
---|---|---|---|
实时推送 | 支持(Spring Cloud Bus) | 支持(HTTP长轮询1s内) | 支持(HTTP长轮询1s内) |
版本管理 | 支持 | 支持 | 支持 |
配置回滚 | 支持 | 支持 | 支持 |
灰度发布 | 支持 | 支持 | 不支持 |
权限管理 | 支持 | 支持 | 不支持 |
多集群 | 支持 | 支持 | 支持 |
多环境 | 支持 | 支持 | 支持 |
监听查询 | 支持 | 支持 | 支持 |
多语言 | 只支持Java | 支持主流语言,提供Open API | 支持主流语言,提供Open API |
配置格式校验 | 不支持 | 支持 | 支持 |
服务注册与发现功能对比
Nacos | Zookeeper | Consul | Etcd | Eureka | |
---|---|---|---|---|---|
服务发现 | 客户端通过DNS或HTTP API发现服务及其位置 | 客户端订阅znodes的变化 | 客户端通过DNS或HTTP API发现服务及其位置 | 客户端可以订阅键或键范围的变化 | 客户端通过DNS或HTTP API发现服务及其位置 |
健康检查 | 提供 | 不直接提供 | 提供 | 不直接提供 | 提供 |
键值存储 | 分布式 | 分布式、强一致性 | 分布式 | 分布式、强一致性 | 分布式 |
观察机制 | 订阅键或键范围的变化 | 订阅znodes的变化 | 订阅键或键范围的变化 | 订阅键或键范围的变化 | 订阅键或键范围的变化 |
事务 | 支持多键事务 | 通过编程实现 | 通过编程实现 | 支持多键事务 | 通过编程实现 |
租约 | 支持 | 通过编程实现 | 支持 | 支持 | 通过编程实现 |
访问控制 | 基于角色 | 基于角色 | 基于角色 | 基于角色 | 基于角色 |
集成&开发
Nacos的安装配置比较简单,按照官方的说明一步步来,使用默认的8848
端口就行。
至于使用的时候,主要是有几个地方需要知道。
网上很多资料说Spring Cloud无法识别
bootstrap.yml
,我这里是加入spring-cloud-starter-bootstrap
依赖就行了,其他地方没做任何设置。当使用
默认命名空间(public)
和默认Data Id
时,Nacos配置文件的命名规则是应用名-配置环境-文件后缀名
的组合,也就是${spring.application.name}
-${spring.profile.active}
-${spring.cloud.nacos.config.file-extension}
,例如,funcun-payment-center-dev.yaml
(前面的funcun-payment-center
就是应用名
)。
spring:
profiles:
active: dev
application:
name: funcun-payment-center
cloud:
nacos:
discovery:
# nacos服务注册与发现地址
server-addr: localhost:8848
config:
# nacos服务配置中心地址
server-addr: localhost:8848
file-extension: yaml
- 开发和测试的时候可以使用默认的
命名空间
配置,但在生产环境中建议明确使用指定的命名空间
和Data Id
。
spring:
profiles:
active: dev
application:
name: funcun-payment-center
cloud:
nacos:
discovery:
# nacos服务注册与发现地址
server-addr: localhost:8848
config:
# nacos服务配置中心地址
server-addr: localhost:8848
file-extension: yaml
# 自定义namespace
namespace: 5dcba23c-cce4-4a2c-b682-bcb216777ef8
# 自定义dataid
dataid: funcun-payment-center.yaml
此时默认的配置文件funcun-payment-center-dev.yaml
将不再起作用,应用会读取5dcba23c-cce4-4a2c-b682-bcb216777ef8(命名空间)
中funcun-payment-center.yaml(Data Id)
的内容。
感谢支持
更多内容,请移步《超级个体》。