服务启动,一般都需要读取本地的配置文件。如果配置文件可以远程管理,那将是个不错的想法。
1. 概述
我们可以通过 zookeeper 管理配置文件内容。服务注册到 zookeeper,当配置文件变更,zookeeper 实时通知服务更新服务的配置文件内容。golang 语言环境下,viper 是一个不错的配置插件。下面是服务读取远程配置到本地的实现流程:
2. 源码
具体源码实现请参考 github。
1
2
3
4
5
6
7
8
9
10
11
12
func main() {
/* 初始化配置文件远程管理对象。 */
InitConfigCenter()
/* 获取配置文件。 */
config, err := GetModule("/test/test.yml", "")
if err != nil {
panic(err)
}
/* 获取配置文件内容。 */
fmt.Println(config.GetInt("test"))
common.InitSignal()
}