Spring→SpringBoot→SpringCloud
Spring是一個輕量級的Java開發(fā)框架,它能使用基本的JavaBean代替EJB。
SpringBoot是由Pivotal團(tuán)隊提供的全新框架,用來簡化新Spring應(yīng)用的初始搭建和開發(fā)過程。開發(fā)人員無需定義樣板化配置。
SpringCloud是一系列框架的有序集合,它把好的東西集合到一起,這就是所謂的集大成者。同時它利用SpringBoot的開發(fā)便利性巧妙的簡化了分布式系統(tǒng)基礎(chǔ)設(shè)施的開發(fā)。
Pivotal公司官網(wǎng):https://pivotal.io/
什么是SpringCloud
SpringCloud是一個微服務(wù)框架,相比Dubbo等RPC框架, SpringCloud提供的全套的分布式系統(tǒng)解決方案。
SpringCloud相關(guān)組件
上面說到SpringCloud是一系列框架的集合,這一系列框架包括什么呢?
Spring Cloud Eureka:一個基于rest服務(wù)的服務(wù)治理組件,包括服務(wù)注冊中心、服務(wù)注冊與服務(wù)發(fā)現(xiàn)機(jī)制的實現(xiàn),實現(xiàn)了云端負(fù)載均衡和中間層服務(wù)器的故障轉(zhuǎn)移。
Spring Cloud Hystrix:容錯管理工具,實現(xiàn)斷路器模式,通過控制服務(wù)的節(jié)點(diǎn),從而對延遲和故障提供更強(qiáng)大的容錯能力。
Spring Cloud Ribbon:客戶端負(fù)載均衡的服務(wù)調(diào)用組件。提供云端負(fù)載均衡,有多種負(fù)載均衡策略可供選擇,可配合服務(wù)發(fā)現(xiàn)和斷路器使用。
Spring Cloud Feign:基于Ribbon和Hystrix的聲明式服務(wù)調(diào)用組件。Feign是一種聲明式、模板化的HTTP客戶端。
Spring Cloud Zuul:云平臺上提供動態(tài)路由,監(jiān)控,彈性,安全等邊緣服務(wù)的框架。相當(dāng)于是設(shè)備和 Netflix 流應(yīng)用的 Web 網(wǎng)站后端所有請求的前門。
Spring Cloud Turbine:Turbine是聚合服務(wù)器發(fā)送事件流數(shù)據(jù)的一個工具,用來監(jiān)控集群下hystrix的metrics情況。
Spring Cloud Netflix Archaius:配置管理API,包含一系列配置管理API,提供動態(tài)類型化屬性、線程安全配置操作、輪詢框架、回調(diào)機(jī)制等功能。
Spring Cloud Config: 配置管理工具包,讓你可以把配置放到遠(yuǎn)程服務(wù)器,幾種化管理集群配置,目前支持本地存儲,Git以及Subversion。
Spring Cloud Bus:消息總線(一種通信工具,可以在機(jī)器之間互相傳輸消息、文件等。消息總線扮演著一種消息路由的角色,擁有一套完備的路由機(jī)制來決定消息傳輸方向。發(fā)送段只需要向消息總線發(fā)出消息而不用管消息被如何轉(zhuǎn)發(fā))
通過輕量消息代理連接各個分布的節(jié)點(diǎn)。管理和傳播所有分布式項目中的消息,本質(zhì)是利用了MQ的廣播機(jī)制在分布式的系統(tǒng)中傳播消息,用于在集群(例如,配置變化事件)中傳播狀態(tài)變化,可與Spring Cloud Config聯(lián)合實現(xiàn)熱部署。
目前常用的有Kafka和RabbitMQ。
RabbitMQ官網(wǎng)地址:http://www.rabbitmq.com/
Kafka官網(wǎng)地址:http://kafka.apache.org/
Spring Cloud Consul:由HashiCorp公司開發(fā),是一個服務(wù)發(fā)現(xiàn)與配置工具,與Docker容器可以無縫集成。
hashicorp官網(wǎng)地址:https://www.hashicorp.com/
Consul官網(wǎng)地址:https://www.consul.io/
Spring Cloud Zookeeper:操作Zookeeper的工具包,用于使用zookeeper方式的服務(wù)發(fā)現(xiàn)和配置管理。
Zookeeper官網(wǎng)地址:https://zookeeper.apache.org/
Spring Cloud Security:基于spring security的安全工具包,為你的應(yīng)用程序添加安全控制。
Spring Cloud Stream:數(shù)據(jù)流操作開發(fā)包,封裝了與Redis,RabbitMQ、Kafka等發(fā)送接收消息。
Spring Cloud Sleuth:日志收集工具包,封裝了Dapper和log-based追蹤以及Zipkin
和HTrace操作,為SpringCloud應(yīng)用實現(xiàn)了一種分布式追蹤解決方案。
Spring Cloud Data Flow:大數(shù)據(jù)操作工具,作為Spring XD的替代產(chǎn)品,它是一個混合計算模型,結(jié)合了流數(shù)據(jù)與批量數(shù)據(jù)的處理方式。是構(gòu)建數(shù)據(jù)集成和實時數(shù)據(jù)處理流水線的工具包。
Spring Cloud Task:提供云端計劃任務(wù)管理、任務(wù)調(diào)度。
Spring Cloud Connectors:便于云端應(yīng)用程序在各種PaaS平臺連接到后端,如:數(shù)據(jù)庫和消息代理服務(wù)。
Spring Cloud Cluster:提供Leadership選舉,如:Zookeeper, Redis, Hazelcast, Consul等常見狀態(tài)模式的抽象和實現(xiàn)。
?Hazelcast 是由Hazelcast公司開發(fā)和維護(hù)的開源產(chǎn)品,可以為基于jvm環(huán)境運(yùn)行的各種應(yīng)用提供分布式集群和分布式緩存服務(wù)。
Hazelcast官網(wǎng)地址:https://hazelcast.com/
Spring Cloud for Cloud Foundry:將您的應(yīng)用程序與Pivotal Cloudfoundry集成。 提供服務(wù)發(fā)現(xiàn)實現(xiàn),并且還可以輕松實現(xiàn)SSO和OAuth2保護(hù)的資源,還可以創(chuàng)建Cloudfoundry服務(wù)代理。CloudFoundry是VMware推出的開源PaaS云平臺。
CloudFoundry官網(wǎng)地址:https://www.cloudfoundry.org/
Spring Cloud CLI:基于 Spring Boot CLI,可以讓你以命令行方式快速建立云組件。
附上兩張圖:


SpringCloud的版本
從下Angel到上Finchley可以看出,版本的第一個字母是按照A-Z順序編排的。
官方說明是這些版本號的單詞來自于英國倫敦的地鐵站站名。
Spring Cloud版本演進(jìn)情況如下:

Spring Cloud與Spring Boot版本匹配關(guān)系

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