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

本文主要介紹了架構技術選型與設計-微服務選型,Spring cloud 實現採用的技術,希望對您的學習有所幫助。

架構技術選型與設計-DUBBODubbo,是阿里巴巴服務化治理的核心框架,並被廣泛應用於阿里巴巴集團的各成員站點(阿里巴巴現在使用架構爲HSF)。 於2012-10-24最後版本2.5.3成爲最後一版本,由噹噹接手維護,命名爲dubbox;2017年突然繼續dubbo進行維護,最後更新版本時間爲 2017-10-11 22:21

webp



Dubbo 核心部件:Provider: 暴露服務的提供方。Consumer:調用遠程服務的服務消費方。Registry: 服務註冊中心和發現中心。Monitor: 統計服務和調用次數,調用時間監控中心。(dubbo的控制檯頁面中可以顯示)Container:服務運行的容器。Dubbo服務集羣-集羣容錯模式

webp



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

webp



架構技術選型與設計-DUBBO

webp



架構技術選型與設計-DUBBO

webp



架構技術選型與設計-微服務選型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 無疑是最佳選擇。

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個子項目,裏面都包含一個或者多個第三方的組件或者框架!

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 情況

Spring cloud 規劃設計

webp



webp



webp



Spring cloud 配置中心

webp



Spring cloud 註冊中心

webp



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

webp



Spring cloud 斷路由

webp



webp


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章