更新時間:2022年10月19日12時02分 來源:傳智教育 瀏覽次數(shù):
SpringCloud的優(yōu)勢
Spring 團隊將來自 Pivotal、 Netflix、HashiCorp等公司的大量久經(jīng)考驗的開源項目整合到一個名為 Spring Cloud 的 Spring 項目中。Spring Cloud 提供了一些庫和工具來快速構(gòu)建分布式系統(tǒng)的一些常見設(shè)計模式,包括:
服務(wù)發(fā)現(xiàn)
JVM 和非 JVM 服務(wù)可以將自己注冊到服務(wù)注冊表中,并輕松發(fā)現(xiàn)生態(tài)系統(tǒng)中可用的其他服務(wù)。Spring Cloud Netflix Eureka 或 Consul 可用于此目的。
分布式配置
由 git 存儲庫支持的集中式外部配置管理。配置資源直接映射到 Spring 環(huán)境,但如果需要,可以由非 Spring 應(yīng)用程序使用。
客戶端負(fù)載均衡
負(fù)載平衡改善了跨多個服務(wù)的工作負(fù)載分布。Spring Cloud 提供 Ribbon - 一個客戶端負(fù)載均衡器,它與 Service Registry 對話并使負(fù)載均衡變得容易。
熔斷器
當(dāng)對服務(wù)的方法調(diào)用失敗時,斷路器允許功能正常降級。使用斷路器模式可以允許微服務(wù)在相關(guān)服務(wù)發(fā)生故障時繼續(xù)運行,防止故障級聯(lián)并給故障服務(wù)時間恢復(fù)。Spring Cloud 提供了 Hystrix,它是斷路器模式的實現(xiàn)。
網(wǎng)關(guān)
Spring Cloud Gateway 是一款基于 Project Reactor 的智能可編程網(wǎng)關(guān)。
鏈路追蹤
Spring Cloud 提供了 Zepkin 和 Sleuth,可用于 Log Correlation 和 Tracing。這對于在實際生產(chǎn)環(huán)境中進行深度故障排除非常有幫助。
安全驗證
Spring Cloud 通過使用少量注解來提供對 OAuth2 服務(wù)器和資源服務(wù)的支持。使用這些庫可以輕松實現(xiàn)授權(quán)和身份驗證。
Dubbo只是實現(xiàn)了服務(wù)治理,而SpringCloud子項目覆蓋了微服務(wù)架構(gòu)下的眾多部分,而服務(wù)治理只是其中的一個方面。Dubbo提供了一個Filter,用于擴展缺失的一些功能,例如:
分布式配置管理:可以使用淘寶的diamond、百度的disconf實現(xiàn)分布式配置管理
服務(wù)鏈路追蹤:可以使用京東開源的Hydra、擴展Filter用Zipkin做服務(wù)追蹤
批量任務(wù)處理:可以使用當(dāng)當(dāng)網(wǎng)開源的Elastic-Job、TBSchedule
綜合以上簡單地對比SpringCloud和Dubbo的優(yōu)勢,我們不難發(fā)現(xiàn)SpringCloud在核心要素上比Dubbo更勝一籌,在開發(fā)過程中只要整合SpringCloud就可以順利完成微服務(wù)組件的融合,而Dubbo要通過定制擴展各種Filter來實現(xiàn)組件整合,開發(fā)難度稍大。
但是近幾年,我們也發(fā)現(xiàn)一個現(xiàn)象(或者說是趨勢):SpringCloud和Dubbo兩個生態(tài)逐步逐步融合在一起。隨著SpringCloud Alibaba的出現(xiàn),Dubbo已經(jīng)可以很好地整合SpringCloud體系進行開發(fā)了。Dubbo的用戶可以輕松地接入SpringCloud體系的注冊中心、配置中心、鏈路追蹤等產(chǎn)品,而無需去自行擴展Filter了。而SpringCloud的用戶,也可以在需要高效的遠(yuǎn)程調(diào)用場景中,輕松引入Dubbo,享受Dubbo的RPC帶來的性能優(yōu)勢。
所以說,雖然SpringCloud更有優(yōu)勢,但SpringCloud和Dubbo逐漸走上融合,兩個生態(tài)應(yīng)該會長期共存,都不會被淘汰。