go-archaius 是golang编写的开源配置管理组件,支持多种配置加载方式,github地址:https://github.com/go-chassis/go-archaius

特点:

Ø微服务配置管理

Ø配置热更新

Ø变更事件通知

Ø多配置源

Ø简单的用户接口

在Sep 25, 2019之后的版本中进行了重构,简化的之前冗余的config factory层;如下图:

l1、Source:配置源接口,通过实现一个source来接入不同配置源,定义配置源的行为函数列表:设置、删除、获取配置、优先级、标签,实现函数继承接口;

l2、Config factory:配置工厂,管理配置源,archaius调用该工厂;

l3、Config manager:源管理,配置key与源存储关系,事件管理;

l4、Config center source:配置中心源,包含client对象,可用于访问配置中心服务,包含Apollo和Servicecomb;

l5、CLI source:配置命令行解析源;

l6、File source:配置文件源,可传入file handler,定制文件处理;fsnotify跨平台文件变化监控;

l7、Env source:环境变量配置源;

l8、默认配置优先级:Config center > CLI > ENV > file,优先使用高优选级的配置;

l9、屏蔽底层实现,提供统一友好就给给用户;

l10、Event Dispatcher:用户可以通过Archaius API监听配置变化,当source的配置项新增、更新、删除时,都会通知监听器;

流程:

archaius初始化流程:

主要用到的类:

取配置值:

remote sorce 远程配置读取源初始化:

下一步扩展:

Ø共享内存配置源

加入从共享内存管理配置的源

Ø配置本地化机制

读取配置后本地保存,避免每次从中心配置服务拉取,减轻中心配置服务压力

ØAgent配置管理模式

本机单agent加载配置,减轻中心服务器压力

参考:

1、Go语言分布式系统配置管理实践--go archaius  https://blog.csdn.net/weixin_33921089/article/details/88039366

2、Go语言分布式系统配置管理实践--go archaius  https://www.codercto.com/a/34577.html