# 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) // } // } } } ```