d78307b1d4 | ||
---|---|---|
.. | ||
.gitignore | ||
.gitlab-ci.yml | ||
README.md | ||
apollo.go | ||
consul.go | ||
go.mod | ||
go.sum | ||
rmconf.go |
README.md
rmconf
remote configuration for mop!
consul
Consul KV作为配置中心, 使用时需要一些约定:
- Key的命名需要表达足够多的信息, 例如: 应用, 用户, 环境, 服务等.
- Value使用JSON, 并且JSON的key与环境变量一致, 值类型是字符串
- 每个环境有一个公用的KEY, 存数据库地址等公共配置
配置优先级: 服务配置 > 公共配置 > 环境变量 > 代码中的默认值, 依次覆盖
demo
if Cfg.ConsulKVAddr != "" && Cfg.ConsulKVKeys != "" {
// 从前往后覆盖
keys := strings.Split(Cfg.ConsulKVKeys, ",")
for i := 0; i < len(keys); i++ {
consulConf := &rmconf.ConsulConfManager{}
path := keys[i]
if strings.TrimSpace(path) == "" {
continue
}
err := consulConf.InitFromConsul(Cfg, Cfg.ConsulKVAddr, Cfg.ConsulKVKeys)
if err != nil {
panic(err)
}
// 启动监听
// if i == len(keys)-1 {
// err = consulConf.StartWatch()
// if err != nil {
// panic(err)
// }
// }
}
}