天天看點

高并發高可用微服務架構技術選型Dubbo與Spring Cloud

一.Dubbo

Dubbo,是阿裡巴巴服務化治理的核心架構,并被廣泛應用于阿裡巴巴集團的各成員站點(阿裡巴巴現在使用架構為HSF)。 于2012-10-24最後版本2.5.3成為最後一版本,由當當接手維護,命名為dubbox;2017年突然繼續dubbo進行維護,最後更新版本時間為 2017-10-11 22:21

高并發高可用微服務架構技術選型Dubbo與Spring Cloud

Dubbo 核心部件:

Provider: 暴露服務的提供方。

Consumer:調用遠端服務的服務消費方。

Registry: 服務注冊中心和發現中心。

Monitor: 統計服務和調用次數,調用時間監控中心。(dubbo的控制台頁面中可以顯示)

Container:服務運作的容器。

1.1 Dubbo服務叢集-叢集容錯模式

高并發高可用微服務架構技術選型Dubbo與Spring Cloud

架構技術選型與設計-微服務選型

高并發高可用微服務架構技術選型Dubbo與Spring Cloud

架構技術選型與設計-DUBBO

高并發高可用微服務架構技術選型Dubbo與Spring Cloud
高并發高可用微服務架構技術選型Dubbo與Spring Cloud

二. Spring Cloud

Spring Cloud,從命名我們就可以知道,它是Spring Source的産物,Spring社群的強大背書可以說是Java企業界最有影響力的組織了,除了Spring Source之外,還有Pivotal和Netfix是其強大的後盾與技術輸出。其中Netflix開源的整套微服務架構套件是Spring Cloud的核心。

如果拿Dubbo與Netflix套件做對比,前者在國内影響力較大,後者在國外影響力較大,在背景上可以打個平手;但是若要與Spring Cloud做對比,由于Spring Source的加入,在背書上,Spring Cloud略勝一籌,但是在高并發上dubbo曾經在阿裡的營運中實際承載過過億使用者同時線上的,而Netflix 并沒有實際的上線應用中展現過。

Spring Cloud下面有19個子項目(可能還會新增)分别覆寫了微服務架構下的方方面面,服務治理隻是其中的一個方面,一定程度來說,Dubbo隻是Spring Cloud Netflix中的一個子集。但是在選擇架構上,方案完整度恰恰是一個需要重點關注的内容,當然從高可用和高并發一起考慮,Spring Cloud 無疑是最佳選擇。

2.1 Spring Cloud 工具架構

1、Spring Cloud Config 配置中心,利用git集中管理程式的配置。

2、Spring Cloud Netflix 內建衆多Netflix的開源軟體

3、Spring Cloud Bus 消息總線,利用分布式消息将服務和服務執行個體連接配接在一起,用于在一個叢集中傳播狀态的變化

4、Spring Cloud for Cloud Foundry 利用Pivotal Cloudfoundry內建你的應用程式

5、Spring Cloud Cloud Foundry Service Broker 為建立管理雲托管服務的服務代理提供了一個起點。

6、Spring Cloud Cluster 基于Zookeeper, Redis, Hazelcast, Consul實作的上司選舉和平民狀态模式的抽象和實作。

7、Spring Cloud Consul 基于Hashicorp Consul實作的服務發現和配置管理。

8、Spring Cloud Security 在Zuul代理中為OAuth2 rest用戶端和認證頭轉發提供負載均衡

9、Spring Cloud Sleuth SpringCloud應用的分布式追蹤系統,和Zipkin,HTrace,ELK相容。

10、Spring Cloud Data Flow 一個雲本地程式和操作模型,組成資料微服務在一個結構化的平台上。

11、Spring Cloud Stream 基于Redis,Rabbit,Kafka實作的消息微服務,簡單聲明模型用以在Spring Cloud應用中收發消息。

12、Spring Cloud Stream App Starters 基于Spring Boot為外部系統提供spring的內建

13、Spring Cloud Task 短生命周期的微服務,為SpringBooot應用簡單聲明添加功能和非功能特性。

14、Spring Cloud Task App Starters

15、Spring Cloud Zookeeper 服務發現和配置管理基于Apache Zookeeper。

16、Spring Cloud for Amazon Web Services 快速和亞馬遜網絡服務內建。

17、Spring Cloud Connectors 便于PaaS應用在各種平台上連接配接到後端像資料庫和消息經紀服務。

18、Spring Cloud Starters (項目已經終止并且在Angel.SR2後的版本和其他項目合并)

19、Spring Cloud CLI 插件用Groovy快速的建立Spring Cloud元件應用。

Spring Cloud共內建了19個子項目,裡面都包含一個或者多個第三方的元件或者架構!

2.2 Spring cloud 實作采用的技術

1、spring cloud : 一個雲應用工具,為雲應用開發的配置管理、服務發現、斷路器、智能路由、微代理、控制總線、全局鎖定、決策競選、分布式會話和叢集狀态管理等操作

2、spring cloud config :配置管理開發工具包

3、 spring cloud Bus :事件消息總線用于叢集(例如:配置變化時間)中傳播狀态變化,與spring cloud config 聯合實作熱部署

4、 spring cloud Netflix Eureka : 雲端負載均衡基礎,一個基于Rest的服務,用于定位服務,以實作雲端的負載均衡和中間層伺服器的故障轉移

5、 spring cloud Netflix Hystrix : 容錯管理工具,旨在通過控制服務和第三方庫的節點,進而對延遲和故障提供更強大的容錯能力

6 、 Netflix ZUUL: 邊緣服務工具,提供動态路由、監控、彈性、安全等邊緣服務

7、 spring cloud sleuth :日志收集工具包、封裝Purpose 、Zipkin和Trace

8、 Spring Cloud Security : 安全工具包,為應用程式添加安全控制,主要是OAuth2

9、 spring cloud turbine :聚合伺服器發送時間流,監控叢集下Netflix 和 metrics 情況

2.3 Spring cloud 規劃設計

高并發高可用微服務架構技術選型Dubbo與Spring Cloud
高并發高可用微服務架構技術選型Dubbo與Spring Cloud
高并發高可用微服務架構技術選型Dubbo與Spring Cloud

2.4 Spring cloud 配置中心

高并發高可用微服務架構技術選型Dubbo與Spring Cloud

2.5 Spring cloud 注冊中心

高并發高可用微服務架構技術選型Dubbo與Spring Cloud

2.6 Spring cloud 網關

服務路由、安全認證、會話共享、用戶端負載均衡、統一異常處理、跨域請求

高并發高可用微服務架構技術選型Dubbo與Spring Cloud

2.7 Spring cloud 斷路由

高并發高可用微服務架構技術選型Dubbo與Spring Cloud
高并發高可用微服務架構技術選型Dubbo與Spring Cloud

繼續閱讀