Nacos是阿里云中间件团队开源的一个项目,但是后期来看有明显收费意图。它的主要功能有服务注册中心和配置中心两方面功能,本文只介绍其中配置中心功能。
使用配置中心有好有坏,其中好处为
- 有效的密码管理,开发不碰触密码配置,运维人员和架构团队统一管理避免泄露;
- 多项目下的配置绝对统一性,不会出现配置写错导致的BUG
- 对于配置的编辑、存储、分发、变更管理、历史版本管理、变更审计有完善的能力
- 配置分组和灰度发布
相比带来的问题为:
- 配置中心异常情况下服务怎么保障可用(SDK提供Cache功能当中心服务不可用会使用上一次加载的缓存配置)
- 配置变更后的程序生效逻辑(SDK提供配置变动订阅逻辑可以订阅配置变动编写处理逻辑)
- 开发过程中的配置文件调试(需要框架进行设计)
- 对于部分语言来说(PHP)配置中心性能的问题
对比之下,当需要管理的服务比较多,或者大量使用微服务架构时候,使用配置中心是很有必要的,可以很大方便维护和管理
常见的类似软件对比:
一 搭建nacos
下载地址:https://github.com/alibaba/nacos/tags
nacos搭建分为单机和集群两种方式,建议使用集群方式搭建,集群方式需要使用外置mysql数据库作为数据源启动,搭建部分可查看网络资料
二 配置中心
nacos作为配置中心,客户端链接获取配置成功后会在本地自动保存一份,当服务端故障后,可以使用本地保留的配置,在服务端配置修改后,可以通过监听的回调函数获取改变内容
在服务端配置好:
命名空间 namespace
组名 group
数据源 dataid
数据源有多种格式 其中常用text,go的话使用yaml多一些,根据自己需要选择
python方式使用
直接代码
import nacos
import json
import time
SERVER_ADDRESSES = '192.168.1.1:8848'
NAMESPACE = 'public'
server_config= {
}
client = nacos.NacosClient(SERVER_ADDRESSES,namespace=NAMESPACE)
def get_json_str(json_value):
return json.dumps(json_value)
def parse_json_str(json_str,default_data