Spring→SpringBoot→SpringCloud
Spring
是一個輕量級的Java
開發(fā)框架慧库,它能使用基本的JavaBean
代替EJB
。
SpringBoot
是由Pivotal團(tuán)隊(duì)提供的全新框架馋嗜,用來簡化新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ī)制的實(shí)現(xiàn),實(shí)現(xiàn)了云端負(fù)載均衡和中間層服務(wù)器的故障轉(zhuǎn)移覆致。
Spring Cloud Hystrix:容錯管理工具侄旬,實(shí)現(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)。管理和傳播所有分布式項(xiàng)目中的消息毫深,本質(zhì)是利用了MQ的廣播機(jī)制在分布式的系統(tǒng)中傳播消息吩坝,用于在集群(例如,配置變化事件)中傳播狀態(tài)變化哑蔫,可與Spring Cloud Config
聯(lián)合實(shí)現(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)用實(shí)現(xiàn)了一種分布式追蹤解決方案。
Spring Cloud Data Flow:大數(shù)據(jù)操作工具起便,作為Spring XD
的替代產(chǎn)品棚贾,它是一個混合計(jì)算模型,結(jié)合了流數(shù)據(jù)與批量數(shù)據(jù)的處理方式榆综。是構(gòu)建數(shù)據(jù)集成和實(shí)時數(shù)據(jù)處理流水線的工具包妙痹。
Spring Cloud Task:提供云端計(jì)劃任務(wù)管理、任務(wù)調(diào)度鼻疮。
Spring Cloud Connectors:便于云端應(yīng)用程序在各種PaaS平臺連接到后端怯伊,如:數(shù)據(jù)庫和消息代理服務(wù)。
Spring Cloud Cluster:提供Leadership選舉判沟,如:Zookeeper
, Redis
, Hazelcast
, Consul
等常見狀態(tài)模式的抽象和實(shí)現(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)實(shí)現(xiàn),并且還可以輕松實(shí)現(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磅摹,所以在使用的時候記得看清楚版本