構建分佈式系統的經常使用技術一覽

通常來講,構建分佈式系統的目的一是增長系統容量,二是提升系統的可用性。轉換成技術方面,也就是宛成如下兩件事。網絡

  • 大流量處理。經過集羣技術把大規模併發請求的負載分散到不一樣的機器上
  • 關鍵業務保護。提升後臺服務的可用性,把故障隔離起來阻止多米諾骨牌效應(雪崩效應)。若是流量過大,須要到業務降級。

說白了就是幹兩件事,一是提升總體架構的吞吐量,服務更多的併發和流量,二是提升系統的穩定性,讓系統的可用性更高。架構

提升架構的性能

提升架構的穩定性

分佈式系統的關鍵技術

引入分佈式系統,會引入一堆技術問題,須要從如下幾個方面解決併發

  • 服務治理。服務拆分、服務調用、服務發現,服務依賴,服務的關鍵度定義……服務治理的最大意義是須要把服務間的依賴關係、服務調用鏈,以及關鍵的服務給梳理出來,並對這些服務進行性能和可用性方面的管理。負載均衡

  • 架構軟件管理。服務之間有依賴,並且有兼容性問題,因此,總體服務所造成的架構須要有架構版本管理、總體架構的生命週期管理,以及對服務的編排、聚合、事務處理等服務調度功能。運維

  • DevOps。分佈式系統能夠更爲快速地更新服務,可是對於服務的測試和部署都會是挑戰。因此,還須要 DevOps 的全流程,其中包括環境構建、持續集成、持續部署等。分佈式

  • 自動化運維。有了 DevOps 後,咱們就能夠對服務進行自動伸縮、故障遷移、配置管理、狀態管理等一系列的自動化運維技術了。性能

  • 資源調度管理。應用層的自動化運維須要基礎層的調度支持,也就是雲計算 IaaS 層的計算、存儲、網絡等資源調度、隔離和管理。測試

  • 總體架構監控。若是沒有一個好的監控系統,那麼自動化運維和資源調度管理只可能成爲一個泡影,由於監控系統是你的眼睛。沒有眼睛,沒有數據,就沒法進行高效的運維。因此說,監控是很是重要的部分。這裏的監控須要對三層系統(應用層、中間件層、基礎層)進行監控。雲計算

  • 流量控制。最後是咱們的流量控制,負載均衡、服務路由、熔斷、降級、限流等和流量相關的調度都會在這裏,包括灰度發佈之類的功能也在這裏。3d

核心

相關文章
相關標籤/搜索