2、Spring Cloud和dubbo簡介

HOsystem發表於2020-12-02

1.Spring Cloud簡介

(1).Spring Cloud簡介

 

 

  SpringCloud,基於SpringBoot提供了一套微服務解決方案,包括服務註冊與發現,配置中心,全鏈路監控,服務閘道器,負載均衡,熔斷器等元件,除了基於NetFlix的開源元件做高度抽象封裝之外,還有一些選型中立的開源元件。

  SpringCloud利用SpringBoot的開發便利性巧妙地簡化了分散式系統基礎設施的開發,SpringCloud為開發人員提供了快速構建分散式系統的一些工具,包括配置管理、服務發現、斷路器、路由、微代理、事件匯流排、全域性鎖、決策競選、分散式會話等等,它們都可以用SpringBoot的開發風格做到一鍵啟動和部署。

  SpringBoot並沒有重複製造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過SpringBoot風格進行再封裝遮蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分散式系統開發工具包

  SpringCloud=分散式微服務架構下的一站式解決方案,是各個微服務架構落地技術的集合體,俗稱微服務全家桶。

(2).Spring Cloud和Spring Boot關係

  SpringBoot專注於快速方便的開發單個個體微服務。

  SpringCloud是關注全域性的微服務協調整理治理框架,它將SpringBoot開發的一個個單體微服務整合並管理起來,為各個微服務之間提供,配置管理、服務發現、斷路器、路由、微代理、事件匯流排、全域性鎖、決策競選、分散式會話等等整合服務

  SpringBoot可以離開SpringCloud獨立使用開發專案,但是SpringCloud離不開SpringBoot,屬於依賴的關係.

  SpringBoot專注於快速、方便的開發單個微服務個體,SpringCloud關注全域性的服務治理框架。

(3).Spring Cloud和Dubbo對比

[1].Spring Cloud架構和Dubbo架構

  

  最大的區別,就是spring cloud有全套的配置不需要引入第三方的軟體,而dubbo需要引入第三方的軟體才能夠正常使用微服務架構。

[2].Spring Cloud和Dubbo比較

①.社群活躍度

Dubbo活躍度:

https://github.com/apache?q=dubbo&type=&language=

 

Spring Cloud活躍度:

https://github.com/spring-cloud

 

②.Cloud和Dubbo對比

 

  最大區別:SpringCloud拋棄了Dubbo的RPC通訊,採用的是基於HTTP的REST方式。

  嚴格來說,這兩種方式各有優劣。雖然從一定程度上來說,後者犧牲了服務呼叫的效能,但也避免了上面提到的原生RPC帶來的問題。而且REST相比RPC更為靈活,服務提供方和呼叫方的依賴只依靠一紙契約,不存在程式碼級別的強依賴,這在強調快速演化的微服務環境下,顯得更加合適。

  很明顯,Spring Cloud的功能比DUBBO更加強大,涵蓋面更廣,而且作為Spring的拳頭專案,它也能夠與Spring Framework、Spring Boot、Spring Data、Spring Batch等其他Spring專案完美融合,這些對於微服務而言是至關重要的。使用Dubbo構建的微服務架構就像組裝電腦,各環節我們的選擇自由度很高,但是最終結果很有可能因為一條記憶體質量不行就點不亮了,總是讓人不怎麼放心,但是如果你是一名高手,那這些都不是問題;而Spring Cloud就像品牌機,在Spring Source的整合下,做了大量的相容性測試,保證了機器擁有更高的穩定性,但是如果要在使用非原裝元件外的東西,就需要對其基礎有足夠的瞭解。

(3).Dubbo歷史

  問題:曾風靡國內的開源 RPC 服務框架 Dubbo 在重啟維護後,令許多使用者為之雀躍,但同時,也迎來了一些質疑的聲音。網際網路技術發展迅速,Dubbo 是否還能跟上時代?Dubbo 與 Spring Cloud 相比又有何優勢和差異?是否會有相關舉措保證 Dubbo 的後續更新頻率?

  人物:Dubbo重啟維護開發的劉軍,主要負責人之一;劉軍,阿里巴巴中介軟體高階研發工程師,主導了 Dubbo 重啟維護以後的幾個發版計劃,專注於高效能 RPC 框架和微服務相關領域。曾負責網易考拉 RPC 框架的研發及指導在內部使用,參與了服務治理平臺、分散式跟蹤系統、分散式一致性框架等從無到有的設計與開發過程。

 

3.Spring Cloud作用

  Distributed/versioned configuration(分散式/版本控制配置)

  Service registration and discovery(服務註冊與發現)

  Service-to-service calls(服務到服務的呼叫)

  Load balancing(負載均衡配置)

  Circuit Breakers(斷路器)

  Distributed messaging(分散式訊息管理)

4.Sping Cloud下載

  官方:https://spring.io/projects/spring-cloud

  參考:https://www.springcloud.cc/spring-cloud-netflix.html

  API:https://www.springcloud.cc/spring-cloud-dalston.html

 https://spring.io/projects/spring-cloud

  社群:http://springcloud.cn/

  中文版:https://www.springcloud.cc/

 5.Spring Cloud使用

服務的註冊與發現(Eureka)

服務消費者(rest+Ribbon)

服務消費者(Feign)

斷路器(Hystrix)

斷路器監控(Hystrix Dashboard)

分散式配置中心(Spring Cloud Config)

訊息匯流排(Spring Cloud Bus)

服務鏈路追蹤(Spring Cloud Sleuth)

 

參考文件:

https://spring.io/microservices

https://spring.io/projects/spring-cloud

https://www.springcloud.cc/spring-cloud-netflix.html

https://www.springcloud.cc/spring-cloud-dalston.html

http://springcloud.cn/

 

 

相關文章