一種微服務(wù)引擎(MSE)架構(gòu)剖析及服務(wù)治理原理介紹

摘要

微服務(wù)引擎(Micro Service Engine后面簡稱 MSE)是面向業(yè)界主流開源微服務(wù)生態(tài)的一站式微服務(wù)治理平臺熔掺,兼容 Spring CloudDubbo 微服務(wù)框架僧家,提供高可用笆搓、免運維的服務(wù)注冊中心(支持 Eureka / Nacos / ZooKeeper)实愚、配置中心(支持 Apollo)和監(jiān)控中心(支持 Skywalking ),實現(xiàn)對微服務(wù)的治理和監(jiān)控畸写。

基于云原生環(huán)境下驮瞧,微服務(wù)引擎又是如何一種架構(gòu)?
微服務(wù)引擎產(chǎn)品中 Spring CloudDubbo 相關(guān)服務(wù)治理是如何實現(xiàn)的枯芬?
Spring Cloud 框架下如何實現(xiàn)參數(shù)的動態(tài)配置呢论笔?

前言

在云原生主流發(fā)展的環(huán)境下,基于需求而來千所,一種應(yīng)云而生的微服務(wù)引擎架構(gòu)翅楼,顯然是脫穎而出,得到業(yè)界的普遍關(guān)注真慢。服務(wù)治理毅臊,對于 Srping Cloud 類型的服務(wù)和 Dubbo 類型的服務(wù),本文也給出了不同的設(shè)計方案。而針對常用的 Srping Cloud 類型的服務(wù)管嬉,做了詳細(xì)的服務(wù)治理剖析皂林,以及通過具體的案例解析相應(yīng)的治理過程。

MSE部署組網(wǎng)架構(gòu)實現(xiàn)

MSE 采用 nginx 網(wǎng)關(guān)作為流量入口蚯撩,統(tǒng)一轉(zhuǎn)發(fā)路由到各個服務(wù)础倍;應(yīng)用端面向 op 用戶,訪問請求經(jīng) op 網(wǎng)關(guān)進行統(tǒng)一管理胎挎。

具體的部署組網(wǎng)架構(gòu)圖如下:


image.png

Dubbo服務(wù)治理

Dubbo服務(wù)的治理沟启,社區(qū)提供的治理方案是自由編輯 yaml 格式的參數(shù)配置,然后將配置信息寫入到注冊中心 zookeeper 的配置節(jié)點上犹菇。微服務(wù)引擎在設(shè)計時德迹,首選推薦的圖形化方式引導(dǎo)選擇或輸入的方式,同時也保留了自由編輯yaml格式的參數(shù)配置的方式揭芍。

Dubbo 服務(wù)治理的配置都存儲在 /dubbo/config 節(jié)點胳搞,具體節(jié)點結(jié)構(gòu)圖如下:

image.png

  • namespace,用于不同配置的環(huán)境隔離称杨。
  • config肌毅,Dubbo 約定的固定節(jié)點,不可更改姑原,所有配置和服務(wù)治理規(guī)則都存儲在此節(jié)點( /dubbo/config )下悬而。
  • dubbo/application,分別用來隔離全局配置锭汛、應(yīng)用級別配置:dubbo 是默認(rèn) group 值笨奠,application 對應(yīng)應(yīng)用名
  • dubbo.properties,此節(jié)點的node value存儲具體配置內(nèi)容

通過可視化配置可以實現(xiàn)Dubbo 服務(wù)的負(fù)載均衡店乐、條件路由艰躺、標(biāo)簽路由、黑白名單策略眨八。

  1. 負(fù)載均衡:在集群負(fù)載均衡時腺兴,Dubbo 提供了多種均衡策略,缺省為隨機調(diào)用廉侧。隨機页响,輪詢,最少活躍調(diào)用數(shù)段誊。
  2. 條件路由:以服務(wù)或消費者應(yīng)用為粒度配置路由規(guī)則闰蚕。 例如:設(shè)置應(yīng)用名為 app1 的消費者只能調(diào)用端口為 20880 的服務(wù)實例,設(shè)置 samples.governance.api.DemoService 的 sayHello 方法只能調(diào)用所有端口為 20880 的服務(wù)實例连舍。
  3. 標(biāo)簽路由:通過將某一個或多個服務(wù)的提供者劃分到同一個分組没陡,約束流量只在指定分組中流轉(zhuǎn),從而實現(xiàn)流量隔離的目的,可以作為藍綠發(fā)布盼玄、灰度發(fā)布等場景的能力基礎(chǔ)贴彼。
  4. 黑白名單:是條件路由的一部分,規(guī)則存儲和條件路由放在一起埃儿,為了方便配置所以單獨拿出來器仗,可以對某一個服務(wù),指定黑名單和白名單童番。

Srping Cloud服務(wù)治理

通過可視化配置可以實現(xiàn) Spring Cloud 服務(wù)的負(fù)載均衡精钮、限流、熔斷剃斧、降級轨香、超時策略以及參數(shù)的動態(tài)化配置,通過 BOMS 管理平臺悯衬,負(fù)責(zé)接收用戶請求弹沽,將用戶數(shù)據(jù)持久化到存儲介質(zhì)檀夹;存儲介質(zhì)用來存儲用戶操作數(shù)據(jù)筋粗,例如項目負(fù)載均衡策略;在使用上述治理功能時炸渡,依賴于 Apollo 的參數(shù)動態(tài)生效功能以及自研的 SDK 負(fù)責(zé)監(jiān)聽存儲介質(zhì)娜亿,動態(tài)更新負(fù)載均衡策略,存儲介質(zhì)基于 Apollo 根據(jù)存儲介質(zhì)中訪問控制策略蚌堵,增加訪問控制攔截負(fù)責(zé)監(jiān)聽存儲介質(zhì)买决,動態(tài)更新是否啟用容錯重試機制,以及動態(tài)更新重試次數(shù)等功能吼畏;后面章節(jié)會從 Apollo 的參數(shù)動態(tài)生效以及 SDK 兩方面詳細(xì)介紹微服務(wù)引擎時如何納管 Springcloud服務(wù)實現(xiàn)流量治理過程洞翩。

如果用戶的微服務(wù)需要通過 MSE 納管進行流量治理磕谅,首先需要在mse里訂購注冊中心及配置中心 Apollo 實例,然后對用戶的服務(wù)進行部分改造,引入SDK工具包捆姜,并且在服務(wù)的配置文件里需要配置 Apollo 的 meta 地址以及 Apollo 的 namespaces:

application, circuit-breaker, fault-tolerant, loadbalance, timeout
這五個 namespace 分別對應(yīng)五種治理功能:參數(shù)動態(tài)配置留拾、熔斷降級涕侈、容錯負(fù)載均衡秒旋、超時策略约计。

下圖是Spring Cloud服務(wù)治理結(jié)構(gòu)圖:

還有 78% 的精彩內(nèi)容
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
支付 ¥7.99 繼續(xù)閱讀
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市迁筛,隨后出現(xiàn)的幾起案子煤蚌,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尉桩,死亡現(xiàn)場離奇詭異俗孝,居然都是意外死亡,警方通過查閱死者的電腦和手機魄健,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進店門赋铝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人沽瘦,你說我怎么就攤上這事革骨。” “怎么了析恋?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵良哲,是天一觀的道長。 經(jīng)常有香客問我助隧,道長筑凫,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任并村,我火速辦了婚禮巍实,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哩牍。我一直安慰自己棚潦,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布膝昆。 她就那樣靜靜地躺著丸边,像睡著了一般。 火紅的嫁衣襯著肌膚如雪荚孵。 梳的紋絲不亂的頭發(fā)上妹窖,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天,我揣著相機與錄音收叶,去河邊找鬼骄呼。 笑死,一個胖子當(dāng)著我的面吹牛滔驾,可吹牛的內(nèi)容都是我干的谒麦。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼哆致,長吁一口氣:“原來是場噩夢啊……” “哼绕德!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起摊阀,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤耻蛇,失蹤者是張志新(化名)和其女友劉穎踪蹬,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體臣咖,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡跃捣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了夺蛇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疚漆。...
    茶點故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖刁赦,靈堂內(nèi)的尸體忽然破棺而出娶聘,到底是詐尸還是另有隱情,我是刑警寧澤甚脉,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布丸升,位于F島的核電站,受9級特大地震影響牺氨,放射性物質(zhì)發(fā)生泄漏狡耻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一猴凹、第九天 我趴在偏房一處隱蔽的房頂上張望夷狰。 院中可真熱鬧,春花似錦精堕、人聲如沸孵淘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至揉阎,卻和暖如春庄撮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背毙籽。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工洞斯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坑赡。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓烙如,卻偏偏與公主長得像,于是被迫代替她去往敵國和親毅否。 傳聞我的和親對象是個殘疾皇子亚铁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,974評論 2 355

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