分佈式服務框架(二)

1、分佈式服務框架其餘組成html

  上一節《分佈式服務框架(一)》講述了RPC發展到SOA的過程,常見的SOA服務治理方案,以及分佈式系統中常見的專業名詞,這部分其實只是涉及到了一個分佈式系統架構的輪廓,真正一個系統的構建,還須要不少模塊互幫互助,協同工做和其餘相關平臺的搭建。
架構

  一個大型,穩健,成熟的分佈式系統的背後,每每會涉及衆多支撐運做的系統,咱們統稱這部分系統爲分佈式系統架構中的基礎設施,下面將介紹一些常見甚至必用的基礎設施。框架

  (1)CI/CD平臺:即持續集成/持續交付,持續集成是指軟件我的研發的部分向軟件總體部分交付,頻繁進行集成以便更快地發現其中的錯誤,持續交付在持續集成的基礎上,將集成後的代碼部署到更貼近真實運行環境的「類生產環境」(此解釋來自https://blog.csdn.net/eugenelee2096/article/details/73332615)說得這麼複雜,無非就是開發代碼過程當中持續的提交,而後進行持續的代碼掃描,單元測試,編譯構建,完成如上流水線後迅速的部署到目標環境上容許的過程。異步

  (2)ConfigCenter:即配置中心,爲各應用的全部環境提供了一箇中心化的外部配置,爲服務端和客戶端提供了分佈式系統的外部化配置支持。分佈式

  (3)Web Portal/IDE:集成應用配置,管理平臺的統一入口和開發IDE。ide

  (4)Deploy Center:部署中心,全部的服務,不管是公共SAAS服務仍是業務服務,開發完成後都需部署到對應的區域和環境上,部署中心提供了發佈應用包的平臺供開發者進行發包部署操做,或提供接口供CI/CD的接入。性能

  (5)公共SAAS:即整個分佈式系統中公用的服務,常見的有權限服務,數據字典,國際化等單元測試

  (6)服務註冊中心:服務註冊中心,是分佈式服務系統中的一個重要組成模塊,管理Provider的Manager,在實際的運行環境中,服務註冊中心Registry被動通知或Consumer主動詢問,在Provider有節點宕機或新增節點時,客戶端也可實時感知到,從而避免了某個Provider被無限調用或是無限閒置測試

  (7)Maven,Git倉庫管理:Maven倉庫用來存儲和管理開發和部署應用過程當中所需的JAR或ZIP文件,Git用來存儲開發者代碼,提供了代碼合成,分支管理等功能。url

  (8)日誌中心:服務運行過程當中,不可避免的會出現各類問題,如何快速定位並分析清楚這些問題的根因,並提出有效的解決方案,日誌在這其中扮演了很重要的角色,日誌中心經過收集Consumer或Provider產生的日誌,爲用戶查詢下載日誌提供了可視化平臺。

  (9)監控中心:接收來自Consumer和Provider異步上報的性能監控數據,對有風險的節點發出告警

  (10)事件中心:事件中心是高度可縮放的數據流式處理平臺和事件引入服務,能夠處理和存儲分佈式軟件和設備生成的事件、數據或遙測

2、完整的分佈式系統設計

  以上所述基礎設施都是分佈式系統中重要或不可缺乏的部分,怎麼將這些基礎設施整合到一塊兒,使整個分佈式系統可以協調運做,下面展現了我的對於這方面的理解。

  開發者接入到對應的IDE開發平臺,選擇對應的產品(Maven或Gradle)構建工程,經過分支管理等措施的落實,進行代碼的編寫,提交,合併,以後提交CI平臺進行代碼檢查,編譯構建,單元測試並部署到部署中心,也可脫離CI進行手動部署。

  無論開發者開發的是公共SAAS仍是業務服務,都會經過部署中心部署到對應的環境區域,業務服務從配置中心拉取應用配置信息,將服務註冊發佈到註冊中心,並可任意調用環境中周邊的公共SAAS服務。

  服務在運行過程當中,將日誌以異步消息的形式上傳到日誌中心,此處也可由日誌中心進行主動收集。同時將性能等方面的數據上報到監控中心,監控中心發現異常後,會對用戶發出告警。監控中心還包括一個事件上報模塊,收集容器的運行情況和產生的事件等數據,對服務的運行做出必要的決策。

  

相關文章
相關標籤/搜索