服務(wù)治理主要針對于當(dāng)前分布式架構(gòu)下多服務(wù)冠胯、微服務(wù)等火诸。
服務(wù)是分布式系統(tǒng)下的一個(gè)不大不小的部分,有了服務(wù)的組成荠察,整個(gè)系統(tǒng)才能活起來置蜀。
隨著業(yè)務(wù)的增長,服務(wù)不能一味地隨之增長悉盆,需要管理盯荤、治理。沒有服務(wù)治理的分布式系統(tǒng)不一定會失敗焕盟,但是隨著業(yè)務(wù)的增長秋秤,這個(gè)系統(tǒng)一定會很痛苦。
服務(wù)治理的目標(biāo)
服務(wù)治理嚴(yán)格意義上應(yīng)該劃分為三個(gè)階段脚翘,包含了服務(wù)的整個(gè)生命周期灼卢。
其中服務(wù)設(shè)計(jì)期主要針對于服務(wù)的設(shè)計(jì)期、開發(fā)期来农,而服務(wù)運(yùn)行期主要針對于服務(wù)上線后等運(yùn)行情況鞋真,最后服務(wù)持續(xù)治理則是堅(jiān)持了“分久必合”的理念,將淘汰制進(jìn)行到底沃于。
下面講講三個(gè)時(shí)期需要完整的工作:
服務(wù)設(shè)計(jì)期:
- 方案評審涩咖、開發(fā)測試審查赶袄、簽發(fā)認(rèn)證、服務(wù)可發(fā)現(xiàn)
- 策略管理
- 合約定義抠藕、商談
- 標(biāo)準(zhǔn)化服務(wù)質(zhì)量協(xié)議
服務(wù)運(yùn)行期:
- 系統(tǒng)記錄:記錄交換的信息
- 服務(wù)管理系統(tǒng):控管、配置服務(wù)以及運(yùn)行階段的組件盾似,根據(jù)異常狀況重新配置環(huán)境
- 服務(wù)監(jiān)控系統(tǒng):采集數(shù)據(jù)零院,可視化告抄,提供變配證據(jù)
- 服務(wù)質(zhì)量保證系統(tǒng):增強(qiáng)通訊中的消息和運(yùn)行階段策略、安全性龄糊、可靠性炫惩、事務(wù)性阿浓、稽核等
服務(wù)持續(xù)治理:
- 服務(wù)資產(chǎn)管理:評估芭毙、分析服務(wù)倉庫,識別服務(wù)可重用的機(jī)率粘咖、協(xié)助進(jìn)行資產(chǎn)整合苛聘、減少冗余的服務(wù)功能
根據(jù)上述目標(biāo)设哗,我們可以確定:
- 服務(wù)治理貫穿了服務(wù)的整個(gè)生命周期网梢,包括開發(fā)前的設(shè)計(jì)战虏、開發(fā)以及測試、運(yùn)行巡社、以及后續(xù)管理晌该。
- 服務(wù)設(shè)計(jì)期主要針對于服務(wù)的設(shè)計(jì)評審以及標(biāo)準(zhǔn)的制定朝群。
- 服務(wù)治理運(yùn)行期的重點(diǎn)放在管理和監(jiān)控中符,為了運(yùn)行良好的目標(biāo)淀散,通過數(shù)據(jù)分析運(yùn)行狀況档插,通過自動化消除異常阀捅、變配等。
- 服務(wù)治理后期的重點(diǎn)放在消除冗余凄诞。
服務(wù)治理平臺設(shè)計(jì)
結(jié)合現(xiàn)在大多架構(gòu)的注冊中心帆谍、監(jiān)控中心汛蝙,可構(gòu)設(shè)出大概的架構(gòu)圖:
結(jié)合Dubbo分析
在服務(wù)治理平臺的開發(fā)過程中窖剑,開發(fā)難點(diǎn)和設(shè)計(jì)服務(wù)復(fù)雜度應(yīng)該放在了服務(wù)注冊西土、服務(wù)監(jiān)控上鞍盗。
Dubbo是一個(gè)高性能服務(wù)框架,致力于提供高性能和透明化的RPC遠(yuǎn)程服務(wù)調(diào)用方案鹅颊,以及SOA服務(wù)治理方案墓造,使得應(yīng)用可通過高性能RPC實(shí)現(xiàn)服務(wù)的輸出和輸入功能滔岳,和Spring框架可以無縫集成谱煤。
問題分析
隨著業(yè)務(wù)不斷增長,為了追求更高的性能支撐業(yè)務(wù)室叉,集群的引入使得服務(wù)架構(gòu)的復(fù)雜度大大提升茧痕。龐大的集群容易出現(xiàn)各種各樣的問題:
- 過多的服務(wù)URL配置困難
- 負(fù)載均衡分配節(jié)點(diǎn)壓力過大的情況下也需要部署集群
- 服務(wù)依賴混亂踪旷,啟動順序不清晰
- 過多服務(wù)導(dǎo)致性能指標(biāo)分析難度較大令野,需要監(jiān)控
架構(gòu)分析
Dubbo注冊中心和監(jiān)控中心的引入是服務(wù)治理的關(guān)鍵气破。
注冊中心的關(guān)鍵點(diǎn):
- 服務(wù)提供者向注冊中心注冊其提供的服務(wù)
- 服務(wù)消費(fèi)者向注冊中心獲取服務(wù)提供者地址列表现使,同時(shí)加上負(fù)載均衡的算法選擇服務(wù)提供者
監(jiān)控中心的關(guān)鍵點(diǎn):
- 服務(wù)消費(fèi)者和提供者累計(jì)調(diào)用次數(shù)和調(diào)用時(shí)間碳锈,定時(shí)發(fā)送統(tǒng)計(jì)數(shù)據(jù)到監(jiān)控中心
業(yè)務(wù)引入架構(gòu)后殴胧,必須要保證的是团滥,對當(dāng)前業(yè)務(wù)的穩(wěn)定性的影響只能是正面影響或者無影響灸姊,不能是負(fù)面影響秉溉。
考慮該架構(gòu)對穩(wěn)定性的影響:
- 注冊中心宕機(jī)情況下召嘶,消費(fèi)者在本地緩存了提供者列表弄跌,業(yè)務(wù)暫時(shí)不受影響铛只,但是不能再注冊新的服務(wù)
- 監(jiān)控中心宕機(jī)情況下淳玩,不影響服務(wù)蜕着,只影響部分采樣數(shù)據(jù)
- 服務(wù)提供方宕機(jī)后承匣,通過負(fù)載均衡算法可將請求往別的同服務(wù)的提供方發(fā)送悄雅,對健壯性起正面作用
注冊中心和監(jiān)控中心的引入在很大程度上提高了運(yùn)行期的穩(wěn)定性宽闲,對應(yīng)了服務(wù)治理的工作容诬。
考慮架構(gòu)對其他方面的影響:
- 可動態(tài)增加服務(wù)览徒,由注冊中心統(tǒng)一動態(tài)分配
- 可動態(tài)增加消費(fèi)方,由注冊中心統(tǒng)一動態(tài)分配
由此可見注冊中心的引入提高了伸縮性措嵌,對應(yīng)了服務(wù)治理運(yùn)行期所需工作。
而監(jiān)控中心的引入浪规,數(shù)據(jù)的采集和分析得到的收益也是明顯的笋婿,對應(yīng)的是服務(wù)治理運(yùn)行期的服務(wù)監(jiān)控以及服務(wù)治理持續(xù)治理下的服務(wù)資產(chǎn)管理。
先這樣吧
若有錯(cuò)誤之處請指出绍填,更多地關(guān)注煎魚讨永。