SpringCloud簡介以及相關元件

ben4發表於2018-06-12

Spring→SpringBoot→SpringCloud

Spring是一個輕量級的Java開發框架,它能使用基本的JavaBean代替EJB
SpringBoot是由Pivotal團隊提供的全新框架,用來簡化新Spring應用的初始搭建和開發過程。開發人員無需定義樣板化配置。
SpringCloud是一系列框架的有序集合,它把好的東西集合到一起,這就是所謂的集大成者。同時它利用SpringBoot的開發便利性巧妙的簡化了分散式系統基礎設施的開發。

Pivotal公司官網:https://pivotal.io/

什麼是SpringCloud

SpringCloud是一個微服務框架,相比Dubbo等RPC框架, SpringCloud提供的全套的分散式系統解決方案。

SpringCloud相關元件

上面說到SpringCloud是一系列框架的集合,這一系列框架包括什麼呢?

Spring Cloud Eureka:一個基於rest服務的服務治理元件,包括服務註冊中心、服務註冊與服務發現機制的實現,實現了雲端負載均衡和中間層伺服器的故障轉移。
Spring Cloud Hystrix:容錯管理工具,實現斷路器模式,通過控制服務的節點,從而對延遲和故障提供更強大的容錯能力。
Spring Cloud Ribbon:客戶端負載均衡的服務呼叫元件。提供雲端負載均衡,有多種負載均衡策略可供選擇,可配合服務發現和斷路器使用。
Spring Cloud Feign:基於RibbonHystrix的宣告式服務呼叫元件。Feign是一種宣告式、模板化的HTTP客戶端。
Spring Cloud Zuul:雲平臺上提供動態路由,監控,彈性,安全等邊緣服務的框架。相當於是裝置和 Netflix 流應用的 Web 網站後端所有請求的前門。
Spring Cloud Turbine:Turbine是聚合伺服器傳送事件流資料的一個工具,用來監控叢集下hystrix的metrics情況。
Spring Cloud Netflix Archaius:配置管理API,包含一系列配置管理API,提供動態型別化屬性、執行緒安全配置操作、輪詢框架、回撥機制等功能。
Spring Cloud Config: 配置管理工具包,讓你可以把配置放到遠端伺服器,幾種化管理叢集配置,目前支援本地儲存,Git以及Subversion
Spring Cloud Bus訊息匯流排(一種通訊工具,可以在機器之間互相傳輸訊息、檔案等。訊息匯流排扮演著一種訊息路由的角色,擁有一套完備的路由機制來決定訊息傳輸方向。傳送段只需要向訊息匯流排發出訊息而不用管訊息被如何轉發)
通過輕量訊息代理連線各個分佈的節點。管理和傳播所有分散式專案中的訊息,本質是利用了MQ的廣播機制在分散式的系統中傳播訊息,用於在叢集(例如,配置變化事件)中傳播狀態變化,可與Spring Cloud Config聯合實現熱部署。
目前常用的有KafkaRabbitMQ
RabbitMQ官網地址:http://www.rabbitmq.com/
Kafka官網地址:http://kafka.apache.org/
Spring Cloud Consul:由HashiCorp公司開發,是一個服務發現與配置工具,與Docker容器可以無縫整合。
hashicorp官網地址:https://www.hashicorp.com/
Consul官網地址:https://www.consul.io/
Spring Cloud Zookeeper:操作Zookeeper的工具包,用於使用zookeeper方式的服務發現和配置管理。
Zookeeper官網地址:https://zookeeper.apache.org/
Spring Cloud Security:基於spring security的安全工具包,為你的應用程式新增安全控制。
Spring Cloud Stream:資料流操作開發包,封裝了與Redis,RabbitMQKafka等傳送接收訊息。
Spring Cloud Sleuth:日誌收集工具包,封裝了Dapperlog-based追蹤以及Zipkin
HTrace操作,為SpringCloud應用實現了一種分散式追蹤解決方案。
Spring Cloud Data Flow:大資料操作工具,作為Spring XD的替代產品,它是一個混合計算模型,結合了流資料與批量資料的處理方式。是構建資料整合和實時資料處理流水線的工具包。
Spring Cloud Task:提供雲端計劃任務管理、任務排程。
Spring Cloud Connectors:便於雲端應用程式在各種PaaS平臺連線到後端,如:資料庫和訊息代理服務。
Spring Cloud Cluster:提供Leadership選舉,如:Zookeeper, Redis, Hazelcast, Consul等常見狀態模式的抽象和實現。
Hazelcast 是由Hazelcast公司開發和維護的開源產品,可以為基於jvm環境執行的各種應用提供分散式叢集和分散式快取服務。
Hazelcast官網地址:https://hazelcast.com/
Spring Cloud for Cloud Foundry:將您的應用程式與Pivotal Cloudfoundry整合。 提供服務發現實現,並且還可以輕鬆實現SSOOAuth2保護的資源,還可以建立Cloudfoundry服務代理。CloudFoundry是VMware推出的開源PaaS雲平臺。
CloudFoundry官網地址:https://www.cloudfoundry.org/
Spring Cloud CLI:基於 Spring Boot CLI,可以讓你以命令列方式快速建立雲元件。
附上兩張圖:

32293-41122dcdb3f3aeef.png

20170428171552881.png

SpringCloud的版本

從下Angel到上Finchley可以看出,版本的第一個字母是按照A-Z順序編排的。
官方說明是這些版本號的單詞來自於英國倫敦的地鐵站站名。

Spring Cloud版本演進情況如下:

QQ截圖20180612214728.png

Spring Cloud與Spring Boot版本匹配關係

QQ截圖20180612214743.png

從上面可以看出,SpringCloud版本不是向下相容的,最新版的SpringCloud版本不能相容舊版的SpringBoot,所以在使用的時候記得看清楚版本


相關文章