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使用consul作为配置中心

概述

micro-config的consul插件从consul的key/values读取配置

准备工作

数据存储格式

consul插件默认的key的前缀是/micro/config,这个是可以自定义的
我们在consul中存储数据
执行命令:

    consul kv put micro/app/mysql '{"address":"127.0.0.1","port":3306}'

设置配置中心

指定配置来源

    consulSource := consul.NewSource(
    	consul.WithAddress("127.0.0.1:8500"),
    	consul.WithPrefix("/micro/app"),
    )

下载配置源

    // 创建配置实例
    conf := config.NewConfig()
    
    // 加载consul配置中心配置
    conf.Load(consulSource)

获取配置

    var Conf Appconfig
    Conf = Appconfig{}

    err = conf.Get("micro", "app", "mysql").Scan(&Conf)
    if err != nil {
        log.Fatal(err)
    }

监听配置变化

    watcher,err := conf.Watch()
    if err != nil {
        log.Fatal(err)
    }

    log.Logf("Watch changes ...")
    for {
        v, err := watcher.Next()
        if err != nil {
        log.Fatal(err)
    }

        log.Logf("Watch changes: %v", string(v.Bytes()))
    }