golang & viper config & zookeeper

2019-06-22

服务启动,一般都需要读取本地的配置文件。如果配置文件可以远程管理,那将是个不错的想法。


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()
}