Skip to content
This repository was archived by the owner on Feb 2, 2021. It is now read-only.

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

README.md

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(&microCfg)
	if err != nil {
		log.Fatal(err)
	}

	log.Logf("Read mysql port: %d", microCfg.Micro.Config.Mysql.Port)