热更新配置xconfig(阿本)

可用方法:AddModule,Get{Type}

  • AddModule 只在main函数,初始化时调用
  • GetXXX 是高性能内存读取,无需担心网络IO开销 —— 后来才知道micro的config也是类似实现,=_=!!

    func main() {
    // xconfig.Prefix = "xxxx" // 默认是 beenest
    // 初始化模块,默认加载common, xconfig.ModuleName (本模块)
      xconfig.AddModule("data", "file")
      ....
      // 获取数据
      var version string = xconfig.GetString("version")
      var versionInt64 int64 = xconfig.GetInt64("version")
      var versionInt int = xconfig.GetInt("version")
    
      var stringSlice []string = xconfig.GetStrings("versions")
      var mapString map[string]interface{} = xconfig.GetMap("versions")
    }
    

    可用属性

type ENV_TYPE int32
const (
    ENV_TYPE_LOCAL      ENV_TYPE = 0
    ENV_TYPE_DEV        ENV_TYPE = 1
    ENV_TYPE_TEST       ENV_TYPE = 2
    ENV_TYPE_NEW        ENV_TYPE = 3
    ENV_TYPE_LIVE       ENV_TYPE = 4
)

// 【RW】项目Etcd的前缀
var Prefix = "beenest"
// 【R】内网IP
var IntranetIp = xip.GetIntranetIP()
// 【R】主机名
var HostName, _ = os.Hostname()
// 【RW】是否开启Debug,默认根据Env开启
var DEBUG = false
// 【R】服务名,global.InitMicroService(service) 时会自动赋值
var ServiceName = "com.xinyan.beenest.common"
// 【R】短服务名,gateway.RunSrv 或 gateway.InitWeb 时会自动赋值
var ShortServiceName = "CommonService"
// 【R】模块名,global.InitMicroService(service) 时会自动赋值
var ModuleName = "common"
// 【R】当前环境,自动根据HostName来设置
var Env ENV_TYPE
// 【R】当前环境名:local、dev、test、new、live
var EnvName string

配置规则

1、优先读取当前环境的配置,例如:dev环境,common配置 = dev:common 覆盖合并 common

image-20200710223517770

2、修改version之后,xconfig才会更新

image-20200710223950785

Copyright © xinyan all right reserved,powered by Gitbook该文件修订时间: 2020-07-29 10:10:45

results matching ""

    No results matching ""