婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 詳解Go語言微服務開發框架之Go chassis

詳解Go語言微服務開發框架之Go chassis

熱門標簽:上海企業外呼系統排名 智能語音電銷的機器人 百度地圖標注位置網站 如何利用高德地圖標注家 電腦外呼系統輻射大嗎 400手機電話免費辦理 揚州電銷外呼系統軟件 武漢百應人工智能電銷機器人 開通400電話申請流程

引言

https://github.com/go-chassis/go-chassis是一個微服務開發框架,而微服務開發框架帶來的其中一個課題就是:當單體應用向微服務轉型后,有大量的配置需要管理,而你并不希望登錄到遠端機器去更改配置,并重啟應用,尤其是現在已經是容器的時代了,也不希望因為一個配置的變更,而發布一個新的軟件包。那么分布式系統中每個進程的動態配置管理及運行時熱加載就成為了一個亟待解決的問題。https://github.com/go-chassis/go-archaius為gochassis而生,他汲取了netflix的archaius框架經驗,并做出來自己的創新特性。

架構

Source:配置源是一種標準接口,可以通過實現一個source來接入不同配置源,它定義配置來自哪個資源,配置可以來自配置中心configcenter,來自本地文件,來自環境變量或是啟動命令行。source負責將配置項緩存到本地內存。用戶可以選擇加載任意的source實現。

Config center source:配置中心源不同于其他source,它包含一個client抽象,可以對接不同的生態系統,目前對接了攜程開源的配置中心Apollo。

Config manager:負責整合管理所有source的配置,每個source可以定義優先級,當通過manager獲取配置時,如果2個不同的source有相同的配置,那么就會取最大優先級的配置。

Event Dispatcher:用戶可以通過Archaius API進行配置變化監聽,當source內部的配置項新增,更新,刪除配置時,都會通知到監聽器。

Source優先級:優先級由大到小依次為Config center,CLI,ENV,file,當有相同配置項的時候僅優先級大的配置生效。在一個分布式系統中,遠程的配置中心理應擁有最大優先級,而在本地運行一個獨立的進程時,通常的思維是,命令行參數優先級高于環境變量,高于本地文件內容。擁有了這樣一套機制后,用戶就無需再寫代碼處理配置項生效邏輯。

Config Factory:封裝了event 和 config manager的API

Archaius API:封裝底層實現,提供友好的API供開發者使用

獲取配置

獲取配置有2種不同的手段:

1. 調用archaius API的Get 方法

2. 注冊監聽器

事件的觸發是由soruce的開發者來決定的,每個source的行為會有不同:

命令行與環境變量是不會產生任何事件的,當archaius運行后配置項就已經定下來了,只能使用Get方法獲取。而文件source會在啟動后拉取一遍本地文件內容并轉換為配置項(可自定義轉換算法,決定配置項形態),之后持續監聽本地文件變化,當有變化發生時會刷新本地配置并通知到監聽器。所以2種方法都支持。config center source行為與文件又不同,在啟動后,它就會周期拉取配置中心的配置,并且對比每一次配置項的不同,并觸發不同類型事件。

配置項形態

假設程序有一個配置文件叫a.yaml,內容如下

registry:

  enabled: true

  interval: 30s復制代碼

要考慮該如何去對待這raw data,目前有2種方式

第一種,將配置項拆分為java properties風格的配置:

registry.refresh: true

registry.interval: 30s

go archaius開放了file handler接口,允許你決定如何將文件內容處理為配置項

那么在遠程的配置中心中,key value的管理方式就要遵循 file handler的行為,當你想變更registry.refresh時,就要在配置中心種更改這個配置項及值。

類似于開關類的配置項,這種java properties的管理方式還是不錯的,當一個配置項改變時觸發一次事件。

但是有一類配置項并不適合如此管理,這就是第二種方式,比如go chassis中的路由管理配置文件:

通常都需要大范圍的更改配置項,那么如果還使用切分的方式在配置中心中管理將會引起go archaius運行時大量的事件觸發,并且,用戶在使用體驗上大打折扣,到處去找分散的配置項,逐一更改。正確的行為是,將文件名作為配置中心中的key,文件內容作為value。用戶需要更改時,去找對應的文件名即可,修改后一次性下發,只會觸發一次事件,完成路由的變更。

開發者應根據實際場景判斷如何處理配置項形態。也可以自己實現handler來決定配置項形態

配置運行時熱加載

在運行時可以隨時通過統一的配置中心或者本地文件(不推薦分布式環境登到機器里改文件,但在本地debug時還是推薦使用文件來測試程序的熱加載邏輯)更改配置了,那么接下來要解決的問題就是配置在運行時生效。

這里的技巧是使用go語言中的讀寫鎖。我以go chassis中路由配置來說明

go chassis運行時總是會有不斷地大并發數據訪問router config這塊緩存,使用一個讀寫鎖lock中的讀鎖,每次訪問緩存都用讀鎖,使用后,解開讀鎖。

向archaius注冊監聽器,需要自己編寫監聽器的邏輯,每當事件出發后就會通過archaius中的數據構建一個結構體數據,然后將數據存到本地緩存,首先使用lock的寫鎖鎖住router config,更新后,解開寫鎖。

在這樣的機制下,就可以做到運行時熱加載配置項而無需重啟服務。

例子

一個本地文件事件監控的例子

https://github.com/go-chassis/go-archaius/tree/master/examples/event

管理本地多文件的例子

https://github.com/go-chassis/go-archaius/tree/master/examples/file

Go chassis介紹

https://juejin.im/post/6844903682362834952

以上就是詳解Go語言微服務開發框架之Go chassis的詳細內容,更多關于Go語言的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 詳解PHP調用Go服務的正確方式
  • goto語法在PHP中的使用教程
  • 基于Go和PHP語言實現爬樓梯算法的思路詳解
  • ThinkPHP5 框架引入 Go AOP,PHP AOP編程項目詳解
  • golang、python、php、c++、c、java、Nodejs性能對比
  • Linux安裝PHP MongoDB驅動
  • PHP中安裝使用mongodb數據庫
  • 詳解Go與PHP的語法對比

標簽:江西 新余 宜賓 張掖 黑龍江 嘉峪關 延邊 武漢

巨人網絡通訊聲明:本文標題《詳解Go語言微服務開發框架之Go chassis》,本文關鍵詞  詳解,語言,微,服務,開發,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解Go語言微服務開發框架之Go chassis》相關的同類信息!
  • 本頁收集關于詳解Go語言微服務開發框架之Go chassis的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产精品网曝门| 91精品国产黑色紧身裤美女| 青青草91视频| 成人视屏免费看| 欧美日韩国产一区二区三区地区| 日韩欧美国产综合一区| 亚洲国产精华液网站w| 久久久久久夜精品精品免费| 久久精品999| 日韩成人一区二区| 色综合 综合色| 国产精品毛片无遮挡高清| 日韩电影免费一区| 色哦色哦哦色天天综合| 久久亚洲一级片| 风间由美一区二区三区在线观看| 欧美日韩一级视频| 一区二区不卡在线播放| 丰满亚洲少妇av| 久久久久久久久久电影| 天天色综合天天| 精品污污网站免费看| 国产欧美精品一区二区三区四区 | 精品欧美黑人一区二区三区| 51精品秘密在线观看| 久久综合狠狠综合| 国产精品乱人伦| 视频在线观看国产精品| 精久久久久久久久久久| 成人国产精品免费观看| 在线这里只有精品| 日本一区免费视频| 日本成人在线不卡视频| www.亚洲免费av| 精品国产91洋老外米糕| 亚洲黄色小视频| 成人av在线一区二区三区| 日韩亚洲欧美高清| 亚洲综合丝袜美腿| av中文字幕在线不卡| 日韩一区和二区| 亚洲综合色噜噜狠狠| 国产成人在线影院| 欧美精品一区二区久久婷婷| 成人免费在线视频观看| 国产精品66部| 日韩久久免费av| 丝袜美腿亚洲色图| 久久久久久久精| 午夜电影一区二区三区| 色婷婷综合激情| 国产精品国产馆在线真实露脸 | 亚洲日本va在线观看| 久久精品99国产精品日本| 欧美日韩国产高清一区二区三区 | 亚洲成人在线观看视频| 欧美午夜精品电影| 午夜电影网一区| 亚洲视频在线一区| 亚洲国产欧美日韩另类综合| 国产精品18久久久久久久久久久久 | 国产精品久久久久久久岛一牛影视| 国内精品免费在线观看| 中文字幕精品在线不卡| av中文字幕在线不卡| 一区二区三区中文在线| 日韩午夜在线观看| 99久久国产综合精品麻豆| 午夜av一区二区| 国产精品久久看| 91精品国产美女浴室洗澡无遮挡| 极品少妇xxxx偷拍精品少妇| 亚洲精品五月天| 精品久久五月天| 91影院在线观看| 欧美日韩精品三区| 久久99精品国产.久久久久久| 亚洲国产成人在线| 久久精品日产第一区二区三区高清版| 国产suv一区二区三区88区| 欧美videos中文字幕| 色久综合一二码| av在线不卡网| 韩国毛片一区二区三区| 日本欧美肥老太交大片| 日本午夜一区二区| 日本午夜精品视频在线观看| 亚洲一区二区视频在线观看| 亚洲品质自拍视频| 亚洲美腿欧美偷拍| 亚洲一区二区视频在线| 亚洲欧美日韩电影| 一区二区三区欧美| 亚洲午夜av在线| 亚洲电影一级片| 久久超碰97人人做人人爱| 国产寡妇亲子伦一区二区| 风流少妇一区二区| 在线一区二区三区四区五区| 91蜜桃婷婷狠狠久久综合9色| 99国产精品一区| 欧美一区永久视频免费观看| 91精品视频网| 国产精品情趣视频| 日韩国产精品91| 99精品偷自拍| 欧美变态tickling挠脚心| 中文字幕免费不卡在线| 亚洲综合精品自拍| 国产资源在线一区| 欧美三级韩国三级日本一级| 久久免费视频一区| 亚洲一区二区三区中文字幕 | 亚洲人成小说网站色在线| 亚洲综合色视频| 成人精品高清在线| 91精品国产aⅴ一区二区| 国产精品天干天干在观线| 久久久国际精品| 日本乱人伦一区| 欧美一级二级三级乱码| 国产日韩精品一区二区三区| 亚洲欧美日韩国产成人精品影院| 日韩成人一级大片| 欧美专区在线观看一区| 欧美精品一区二区三区久久久| 一区二区激情小说| 欧洲亚洲国产日韩| 亚洲青青青在线视频| eeuss鲁片一区二区三区在线观看| 91精品国产91热久久久做人人| 一区二区三区四区视频精品免费 | 亚洲一区在线观看免费| 99re热视频精品| 亚洲一级不卡视频| 日韩一级成人av| 国产成人精品一区二区三区四区| 精品成人私密视频| 国产v日产∨综合v精品视频| 亚洲天堂2016| 欧美乱妇一区二区三区不卡视频| 午夜精品爽啪视频| 2021中文字幕一区亚洲| 精品亚洲porn| 亚洲欧美在线aaa| 欧美精品一二三| 成人性生交大片免费看视频在线| 亚洲欧洲日本在线| 91精品黄色片免费大全| 国产美女久久久久| 欧美蜜桃一区二区三区| 成人在线视频一区| 日韩电影在线观看网站| 中文字幕一区三区| 精品国产网站在线观看| 在线免费观看成人短视频| 精品无码三级在线观看视频 | 五月天一区二区三区| 91精品国产91综合久久蜜臀| 亚洲第一福利一区| 国产精品日产欧美久久久久| 宅男在线国产精品| 欧美综合亚洲图片综合区| 国产乱一区二区| 蜜桃av一区二区在线观看| 一区二区三区资源| 亚洲人成人一区二区在线观看| 国产精品久久午夜| 国产精品第一页第二页第三页| 欧美一区二区三区婷婷月色| 在线观看一区日韩| 色综合欧美在线视频区| 国产不卡一区视频| 男人的天堂亚洲一区| 国产精品对白交换视频| 97久久久精品综合88久久| 日本麻豆一区二区三区视频| 亚洲啪啪综合av一区二区三区| 久久综合色天天久久综合图片| 在线成人免费观看| 欧美日产国产精品| 欧美日韩国产首页在线观看| 99久久久精品免费观看国产蜜| 国产91丝袜在线观看| 国产精品一品视频| 床上的激情91.| 自拍偷拍欧美激情| 亚洲最大色网站| 91麻豆精品国产91久久久更新时间| 午夜欧美视频在线观看| 国产精品福利影院| 亚洲四区在线观看| 亚洲影视在线观看| 精品影视av免费| 99精品久久免费看蜜臀剧情介绍| 99久久777色| 91精品免费在线| 国产精品麻豆欧美日韩ww| 国产精品理伦片| 日本一不卡视频|