springcloud技術架構理解

一個會寫程式碼的文藝青年發表於2020-10-21

springcloud是一套解決分散式應用框架的生態系統,是相關技術的集合解決方案。也就是說,springcloud是用來管理微服務的解決方案

包括服務註冊與發現、統一配置管理、路由閘道器、事件匯流排、分散式會話、註冊中心等元件組成 

 

一. springcloud前言

針對目前的應用程式來說,當應用的伺服器壓力逐漸增大,可以通過部署叢集的方式減緩訪問壓力,但是如果想進一步實現資源利用最大化,就需要將單一應用拆分為多個模組化的應用。模組之間通過通訊協同工作,共同負載應用。springcloud就為分散式應用的管理提供了一站式的解決方案。提供了高可用的服務架構。

1. springcloud & springboot

springboot是對spring的進一步封裝,簡化了應用開發和配置。但其開發的應用程式還是一個單體的應用。能夠快速高效的開發一個一個的微服務

springcloud就是將這些springboot應用集合起來,組成一個大型應用的方案。並且給微服務之間提供了通訊、路由、熔斷等方案。讓微服務之間可以自由的通訊協同。

springboot是單獨的微服務,springcloud是基於springboot實現的分散式架構治理解決方案。

2. dubbo  & springcloud

dubbo 是一個基於RPC通訊的遠端呼叫服務包。早期由阿里巴巴開發,中間停更了5年,17年又被重啟。是一個基於netty的非同步呼叫分散式架構解決方案。

springcloud  是基於restFul網路通訊的同步阻塞服務呼叫框架。社群活躍度比較高。

相對於springcloud來說,dubbo就顯得單調一點了。

因為如果只是用dubbo來搭建分散式系統,dubbo整合springboot很簡單,就只需要匯入依賴,寫入配置檔案,使用註解就能把一個服務註冊為dubbo的bean來完成暴露。但是對於一個分散式系統來說,需要做的事情有很多。

例如,需要設計負載均衡、註冊中心、需要進行服務熔斷、需要做閘道器路由過濾等等

此時使用dubbo就需要我們自己選擇與系統相對應的技術來配合搭建使用。靈活性很高,但想要搭建一個高效能高可用高併發的三高系統架構,與架構能力和技術能力會有很高的要求。

但是springcloud提供了這些分散式架構問題的所有解決方案。直接拿來使用即可。所以springcloud應用起來更加簡單高效易於理解。

3. springcloud能做什麼?

  • Distributed/versioned configuration(分散式/版本控制配置)
  • Service registration and discovery(服務註冊與發現)
  • Routing(路由)

  • Service-to-service calls(服務於服務間的呼叫通訊)

  • Load balancing(負載均衡)

  • Circuit Breakers(斷路器)

  • Global locks(全域性鎖)

  • Leadership election and cluster state(叢集)

  • Distributed messaging(分散式訊息)

springcloud中文API文件:https://www.springcloud.cc/spring-cloud-dalston.html#

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相關文章