啥 啥 啥,服務治理是個啥

首先,先說下服務治理的邊界,本質上任何能提升服務可用性,性能,讓服務更穩定等等,只要是能讓服務運行的更好,都屬於服務治理的範疇。服務治理比較常見的話題:服務發現,服務變更管理,服務監控,服務擴容縮容,服務自我保護,服務降級,服務授權防攻擊,服務上線驗證和灰度發佈,服務問題定位和跟蹤,服務負載,服務實例的調度等等。

微服務是最近幾年才興起的概念。簡單點講,就是把複雜的大應用,解耦拆分成幾個小的應用。這樣做的好處有很多。比如,這樣有利於團隊組織架構的拆分,畢竟團隊越大協作的難度越大;再比如,每個應用都可以獨立運維,獨立擴容,獨立上線,各個應用之間互不影響。不用像原來那樣,一個小功能上線,整個大應用都要重新發布。

不過,有利就有弊。大應用拆分成微服務之後,服務之間的調用關係變得更復雜,平臺的整體複雜熵升高,出錯的概率、debug 問題的難度都高了好幾個數量級。所以,爲了解決這些問題,服務治理便成了微服務的一個技術重點。

所謂服務治理,簡單點講,就是管理微服務,保證平臺整體正常、平穩地運行。服務治理涉及的內容比較多,比如鑑權、限流、降級、熔斷、監控告警等等。這些服務治理功能的實現,底層依賴大量的數據結構和算法。

關於微服務框架,目前國內常見的是SpringCloud技術棧Dubbo技術棧,前者多爲rest服務(http),後者多爲RPC服務,一般來說REST 服務調用性能會比 RPC 低一些,注意本質上來講rest也可以認爲是一種RPC。技術棧支持上來說,SpringCloud由於引入了很多依賴組件,特別是netflix的那一套組件,上手簡單,但是隨着最近幾年阿里對於Dubbo社區的投入增加,Dubbo相關組件也慢慢活躍起來,比如nacos、sentinel、rocketmq、seata這些,最近兩年也搞了一個Spring Cloud Alibaba,其中就集成了上述所說的幾個組件。

Spring Cloud Alibaba 是阿里巴巴提供的微服務開發一站式解決方案,是阿里巴巴開源中間件與 Spring Cloud 體系的融合。

關於限流熔斷降級,目前開源框架有hystrix和sentinel。比如Sentinel 是面向分佈式服務架構的流量控制組件,主要以流量爲切入點,從流量控制、熔斷降級、系統自適應保護等多個維度來幫助您保障微服務的穩定性。關於下流,一般會根據不同場景進行不同的限流操作,常見的有令牌桶和漏斗限流算法。

 

關於Sentinel可以參考如下文章:

關於配置中心,目前常見的有Apollo、Disconf、Nacos,其中Apollo是目前國內使用較多的,Nacos目前也是阿里主推的,其發展潛力也不容小覷。關於註冊中心,大都是基於AP或者CP來實現,比如常見的Eureka、Nacos、Etcd等等。

對於分佈式事務來說,目前比較火的是阿里開源的Seata-其致力於提供高性能和簡單易用的分佈式事務服務。Seata 將爲用戶提供了 AT、TCC、SAGA 和 XA 事務模式,爲用戶打造一站式的分佈式解決方案,github地址:https://github.com/seata/seata。關於seata這塊,可以參考以下文章:

服務治理內容涉及較多,在這裏就不一一展開贅述了,感興趣的小夥伴可以根據文章開頭的內容自行google即可。

 

 推薦閱讀 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章