一、前言
首先本文僅作為筆者在做一些調(diào)研之后的總結(jié),僅提供思路,不提供源碼,所以如果是想直接沖著源碼來的,可以跳過此文。如果后續(xù)有機(jī)會將項(xiàng)目開源出來,會第一時(shí)間寫新文章講解實(shí)線細(xì)節(jié)。
在分布式系統(tǒng)的構(gòu)建之中,服務(wù)治理是類似血液一樣的存在,一個(gè)好的服務(wù)治理平臺可以大大降低協(xié)作開發(fā)的成本和整體的版本迭代效率。在服務(wù)治理之前,簡單粗暴的RPC調(diào)用使用的點(diǎn)對點(diǎn)方式,完全通過人為進(jìn)行配置操作決定,運(yùn)維成本高(每次布置1套新的環(huán)境需要改一堆配置文件的IP),還容易出錯(cuò),且整個(gè)系統(tǒng)運(yùn)行期間的服務(wù)穩(wěn)定性也無法很好的感知。
關(guān)于服務(wù)治理網(wǎng)上相關(guān)的信息也是非常多,但是如何基于每個(gè)公司的當(dāng)下情況去選擇最合適的方案落地,是我們每個(gè)架構(gòu)師或者Leader需要考慮的問題。所謂工欲善其事必先利其器,做好了服務(wù)治理,那么SOA化的推進(jìn)會事半功倍,已經(jīng)從技術(shù)層面天然支持了程序的水平擴(kuò)展。.Neter社區(qū)下成熟的服務(wù)治理平臺缺乏,我想這也是每個(gè)基于.Net技術(shù)棧公司面臨的問題。2016年微軟正式推出了Service Fabric,并于17年開源(https://github.com/Azure/service-fabric),但是相對Java社區(qū)常見的解決方案,這個(gè)還未得到大規(guī)模驗(yàn)證,所以還需謹(jǐn)慎對待。所以本文就通過對不同的成熟解決方案來分析,提煉出一些核心的通用準(zhǔn)則,來分析自建一個(gè)服務(wù)治理框架需要做些什么。歡迎大家拍磚。
二、成熟的解決方案
查閱的一些資料,目前的業(yè)界一些比較成熟的解決方案如下: