micro config 配置管理

micro config

? micro 的配置文件是內(nèi)置的一個配合管理系統(tǒng)惯雳,config 可以從 etcd ,consul,或者文件中加載配置信息概龄,使用的時候也比較方便

source

config 需要從source 來加載配置馏艾,micro 已經(jīng)實現(xiàn)了12 中source 加載的方法绢彤,也就是說可以從12 種不同的媒介中載入配置卿吐,當然也可以自己寫插件來實現(xiàn)載入配置富弦,這里列舉出幾個會比較常用的配置加載方式

  1. etcd
  2. consul
  3. file
  4. env
  5. cli
  6. url

在項目中使用到的是etcd,這里就用etcd 的使用舉例

配置加載的方法灵嫌,使用起來是比較簡單

  1. 創(chuàng)建source
source := etcd.NewSource(
        etcd.WithAddress(address),
        )
  1. 加載配置
l.conf=config.NewConfig()
    err:=l.conf.Load(source)
    if err!=nil {
        logger.Fatal(err)
    }
  1. 獲取配置
value:=l.conf.Get(strings.Split(token_path,"/")...).Bytes()

從etcd加載配置需要注意的問題

etcd中存配置的時候需要時json格式存進去的,配置的路徑要注意葛作,micro默認的配置路徑是

/micro/config

這里舉個例子就明白了寿羞,比如我們要存jwt 的私鑰文件進去要怎么存 ,前面說了赂蠢,必須要存進去json 格式的才能行绪穆,那么就應(yīng)該是這樣子

/micro/config/token:{"private":"123456abc"}

怎么取呢 ?看下源碼里面取值得方法

config.Config.Get(path ...string)

追蹤到一個實現(xiàn)

func (j *Json) GetPath(branch ...string) *Json {
    jin := j
    for _, p := range branch {
        jin = jin.Get(p)
    }
    return jin
}

可以看到了虱岂,其實是根據(jù)存值得路徑一層層取出來的玖院。

取值的方法

//這樣子直接取到了private的值
// 123456abc
value:=l.conf.Get("micro","config","token","private").Bytes()

//或者這樣子,取到了token {\"private\":\"123456abc\"}
value:=l.conf.Get("micro","config","token").Bytes()

etcd 動態(tài)更新,Config里面的watch 方法允許我們訂閱配置的變更第岖,從而做出反應(yīng)

//配置更新的方法
func (l *Token) enableAutoUpdate(path ...string) {
    go func() {
        for {
            w, err := l.conf.Watch(path...)
            if err != nil {
                logger.Error(err)
            }
            v, err := w.Next()
            if err != nil {
                logger.Error(err)
            }

            value := v.Bytes()
            l.PrivateKey=value

            logger.Info("New JWT privateKey:", string(l.PrivateKey))
        }
    }()
}

監(jiān)聽指定路徑的配置难菌,來動態(tài)更新token 私鑰

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蔑滓,隨后出現(xiàn)的幾起案子郊酒,更是在濱河造成了極大的恐慌,老刑警劉巖键袱,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件燎窘,死亡現(xiàn)場離奇詭異,居然都是意外死亡蹄咖,警方通過查閱死者的電腦和手機褐健,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來比藻,“玉大人铝量,你說我怎么就攤上這事∫祝” “怎么了?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵纽匙,是天一觀的道長务蝠。 經(jīng)常有香客問我,道長烛缔,這世上最難降的妖魔是什么馏段? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮践瓷,結(jié)果婚禮上院喜,老公的妹妹穿的比我還像新娘。我一直安慰自己晕翠,他們只是感情好喷舀,可當我...
    茶點故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布砍濒。 她就那樣靜靜地躺著,像睡著了一般硫麻。 火紅的嫁衣襯著肌膚如雪爸邢。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天拿愧,我揣著相機與錄音杠河,去河邊找鬼。 笑死浇辜,一個胖子當著我的面吹牛券敌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播柳洋,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼陪白,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了膳灶?” 一聲冷哼從身側(cè)響起咱士,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎轧钓,沒想到半個月后序厉,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡毕箍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年弛房,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片而柑。...
    茶點故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡文捶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出媒咳,到底是詐尸還是另有隱情粹排,我是刑警寧澤,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布涩澡,位于F島的核電站顽耳,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏妙同。R本人自食惡果不足惜射富,卻給世界環(huán)境...
    茶點故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粥帚。 院中可真熱鬧胰耗,春花似錦、人聲如沸芒涡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至弛槐,卻和暖如春懊亡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背乎串。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工店枣, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人叹誉。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓鸯两,卻偏偏與公主長得像,于是被迫代替她去往敵國和親长豁。 傳聞我的和親對象是個殘疾皇子钧唐,可洞房花燭夜當晚...
    茶點故事閱讀 45,455評論 2 359

推薦閱讀更多精彩內(nèi)容