簡(jiǎn)介
Spring Cloud為開(kāi)發(fā)者們提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如:配置管理、服務(wù)發(fā)現(xiàn)、斷路器、智能路由、微代理、控制總線(xiàn)、一次性token、全局鎖、決策者競(jìng)選、分布式會(huì)話(huà)、集群狀態(tài)等等)。分布式系統(tǒng)的協(xié)作產(chǎn)生了諸多標(biāo)準(zhǔn)模式,在Spring Cloud的幫助下,開(kāi)發(fā)者能夠快速地構(gòu)建起實(shí)現(xiàn)了這些模式的服務(wù)與應(yīng)用。它們?cè)谌魏畏植际江h(huán)境中都能運(yùn)行良好,包括在開(kāi)發(fā)者自己的筆記本電腦、裸機(jī)數(shù)據(jù)中心以及像Cloud Foundry這樣的托管平臺(tái)。

特性
Spring Cloud專(zhuān)注于為典型用例和可擴(kuò)展機(jī)制提供良好的開(kāi)箱即用體驗(yàn)。
- 分布式/版本化配置
- 服務(wù)注冊(cè)與發(fā)現(xiàn)
- 路由
- Service-to-service調(diào)用
- 負(fù)載均衡
- 斷路器
- 全局鎖
- 決策者競(jìng)選與集群狀態(tài)
- 分布式消息傳遞
主要項(xiàng)目
Spring Cloud Config
由Git倉(cāng)庫(kù)支持的集中式外部配置管理。配置資源直接映射到Spring環(huán)境中,如果有需要,也可以在非Spring應(yīng)用中使用。
Spring Cloud Netflix
核心組件,對(duì)多個(gè)Netflix公司的OSS開(kāi)源組件進(jìn)行整合(Eureka, Hystrix, Zuul, Archaius等等)
-
Eureka
服務(wù)治理組件,包含服務(wù)注冊(cè)中心、服務(wù)注冊(cè)與發(fā)現(xiàn)機(jī)制的整合。
-
Hystrix
容錯(cuò)管理組件,實(shí)現(xiàn)斷路器模式,幫助服務(wù)依賴(lài)中出現(xiàn)的延遲和故障提供強(qiáng)大的容錯(cuò)能力。
-
Ribbon
客戶(hù)端負(fù)載均衡的服務(wù)調(diào)用組件。
-
Feign
基于Ribbon和Hystrix的聲明式服務(wù)調(diào)用組件。
-
Zuul
網(wǎng)關(guān)組件,提供智能路由、訪(fǎng)問(wèn)過(guò)濾等功能。
-
Archaius
外部化配置組件。
Spring Cloud Bus
使用分布式消息傳遞將服務(wù)與服務(wù)實(shí)例連接在一起的事件總線(xiàn)。對(duì)于在集群上傳播狀態(tài)的更改十分有用(例如:配置更改事件)
Spring Cloud for Cloud Foundry
使用Pivotal Cloudfoundry整合你的應(yīng)用。提供了服務(wù)發(fā)現(xiàn)的實(shí)現(xiàn)并且使其很容易實(shí)現(xiàn)SSO和OAuth2 保護(hù)資源,以及創(chuàng)建一個(gè)Cloudfoundry服務(wù)代理。
Spring Cloud Cloud Foundry Service Broker
提供一個(gè)構(gòu)建服務(wù)代理的起點(diǎn),該服務(wù)代理管理一個(gè)Cloud Foundry管理的服務(wù)。
Spring Cloud Cluster
為Zookeeper, Redis, Hazelcast, Consul實(shí)現(xiàn)了決策者競(jìng)選以及通用狀態(tài)模式的抽象及其具體實(shí)施。
Spring Cloud Consul
使用Hashicorp Consul實(shí)現(xiàn)的服務(wù)發(fā)現(xiàn)與配置管理。
Spring Cloud Security
在Zuul代理中提供對(duì)實(shí)現(xiàn)負(fù)載均衡的OAuth2 Rest客戶(hù)端以及認(rèn)證頭繼電器的支持。
Spring Cloud Sleuth
分布式Spring Cloud應(yīng)用跟蹤,與Zipkin, HTrace以及基于日志跟蹤相兼容。
Spring Cloud Data Flow
一個(gè)原生云業(yè)務(wù)流程服務(wù)用于在現(xiàn)代運(yùn)行時(shí)系統(tǒng)組成微服務(wù)應(yīng)用。易于使用的DSL、拖放式的界面以及Restful風(fēng)格的APIs簡(jiǎn)化了整個(gè)基于數(shù)據(jù)管道的微服務(wù)的業(yè)務(wù)流程。
Spring Cloud Stream
一個(gè)輕量級(jí)事件驅(qū)動(dòng)型的微服務(wù)框架,用于快速地構(gòu)建能連接外部系統(tǒng)的應(yīng)用。使用Apache Kafka或RabbitMQ,其簡(jiǎn)單的聲明式模型用于在Spring Boot應(yīng)用中發(fā)送和接收消息。
Spring Cloud Stream App Starters
Spring Cloud Stream App Starters是基于Spring Integration的Spring Boot應(yīng)用,提供了與外部系統(tǒng)的整合功能。
Spring Cloud Task
一個(gè)短暫的微服務(wù)框架,提供了快速構(gòu)建處理有限數(shù)量的數(shù)據(jù)處理的應(yīng)用。簡(jiǎn)單的聲明就能為Spring Boot應(yīng)用添加功能的和非功能的特性。
Spring Cloud Task App Starters
Spring Cloud Task App Starters是Spring Boot 應(yīng)用程序,可能是包括Spring批處理作業(yè)在內(nèi)的任何進(jìn)程,它們不會(huì)永遠(yuǎn)運(yùn)行,并且在有限的數(shù)據(jù)處理期后結(jié)束/停止。
Spring Cloud Zookeeper
使用Apache Zookeeper實(shí)現(xiàn)了服務(wù)發(fā)現(xiàn)與配置管理。
Spring Cloud for Amazon Web Services
易于集成托管于亞馬遜的Web服務(wù)。它提供了一種便捷的方式與AWS進(jìn)行交互,使用著名的Spring idioms 和APIs提供了服務(wù),例如消息傳遞或緩存API。開(kāi)發(fā)者能夠在托管服務(wù)上構(gòu)建應(yīng)用,而不必關(guān)心基礎(chǔ)設(shè)施或維護(hù)。
Spring Cloud Connectors
便于在各種平臺(tái)上的PaaS應(yīng)用連接后端服務(wù)像數(shù)據(jù)庫(kù)和消息代理(該項(xiàng)目原名為Spring Cloud)
Spring Cloud CLI
Spring Boot CLI插件,用于快速在Groovy中創(chuàng)建Spring Cloud組件應(yīng)用。
Spring Cloud Contract
Spring Cloud Contract是一攬子項(xiàng)目,包含一系列用于幫助用戶(hù)成功實(shí)施消費(fèi)驅(qū)動(dòng)合同的方案的解決方法。
參考文獻(xiàn)
- Spring Cloud[EB/OL]. http://projects.spring.io/spring-cloud/.
- 翟永超. Spring Cloud微服務(wù)實(shí)戰(zhàn)[M]. 北京:電子工業(yè)出版社, 2017. 7-8