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