finclip-app-manager/vendor/gitlab.finogeeks.club/finclip-backend/rmconf/README.md

40 lines
1.0 KiB
Markdown
Raw Normal View History

2023-11-02 18:36:36 +08:00
# rmconf
remote configuration for mop!
## consul
Consul KV作为配置中心, 使用时需要一些约定:
1. Key的命名需要表达足够多的信息, 例如: 应用, 用户, 环境, 服务等.
2. Value使用JSON, 并且JSON的key与环境变量一致, 值类型是字符串
3. 每个环境有一个公用的KEY, 存数据库地址等公共配置
配置优先级: 服务配置 > 公共配置 > 环境变量 > 代码中的默认值, 依次覆盖
### demo
```go
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)
// }
// }
}
}
```