micro使用etcd作为配置中心
本示例我们演示使用ETCD作为配置中心
预置条件
没有安装可参考官网教程安装。
因为我们要在/micro/app
下创建配置,所以我们先执行以下命令,创建一个虚拟的Mysql配置
etcdctl put /micro/app/config "{\"micro\":{\"config\":{\"mysql\":{\"port\":3309}}}}"
OK
查看是否添加成功
etcdctl get /micro/app/config
/micro/app/config
{micro:{config:{mysql:{port:3306}}}}
设置etcd配置中心
初始化etcd配置中心source,见源码
etcdSource := etcd.NewSource(
etcd.WithAddress("127.0.0.1:2379"),
etcd.WithPrefix("/micro/app"),
)
将该source即配置源设置到micro的config中。
conf := config.NewConfig()
err := conf.Load(etcdSource)
if err != nil {
log.Fatal(err)
}
获取配置,设置到microCfg实例中
microCfg := &struct {
Micro Micro `json:"micro"`
}{}
v := conf.Get("micro", "app", "config")
err = v.Scan(µCfg)
if err != nil {
log.Fatal(err)
}
log.Logf("Read mysql port: %d", microCfg.Micro.Config.Mysql.Port)