簡介
- Spring Cloud是一個微服務(wù)框架谎势,相比Dubbo等RPC框架, Spring Cloud提供的全套的分布式系統(tǒng)解決方案境输。
- Spring Cloud對微服務(wù)基礎(chǔ)框架Netflix的多個開源組件進(jìn)行了封裝窃肠,同時又實(shí)現(xiàn)了和云端平臺以及和Spring Boot開發(fā)框架的集成蓝谨。
- Spring Cloud為微服務(wù)架構(gòu)開發(fā)涉及的配置管理矢沿,服務(wù)治理削樊,熔斷機(jī)制豁生,智能路由,微代理嫉父,控制總線沛硅,一次性token,全局一致性鎖绕辖,leader選舉摇肌,分布式session,集群狀態(tài)管理等操作提供了一種簡單的開發(fā)方式仪际。
- Spring Cloud 為開發(fā)者提供了快速構(gòu)建分布式系統(tǒng)的工具围小,開發(fā)者可以快速的啟動服務(wù)或構(gòu)建應(yīng)用、同時能夠快速和云平臺資源進(jìn)行對接树碱。
Spring Cloud子項(xiàng)目
- Spring Cloud Config:配置管理工具肯适,支持使用Git存儲配置內(nèi)容,支持應(yīng)用配置的外部化存儲成榜,支持客戶端配置信息刷新框舔、加解密配置內(nèi)容等,集中化管理集群配置
- Spring Cloud Bus:事件、消息總線刘绣,用于在集群(例如樱溉,配置變化事件)中傳播狀態(tài)變化,可與Spring Cloud Config聯(lián)合實(shí)現(xiàn)熱部署纬凤。
- Spring Cloud Netflix:針對多種Netflix組件提供的開發(fā)工具包福贞,其中包括Eureka、Hystrix停士、Zuul挖帘、Archaius等。
- Netflix Eureka:一個基于rest服務(wù)的服務(wù)治理組件恋技,包括服務(wù)注冊中心拇舀、服務(wù)注冊與服務(wù)發(fā)現(xiàn)機(jī)制的實(shí)現(xiàn),實(shí)現(xiàn)了云端負(fù)載均衡和中間層服務(wù)器的故障轉(zhuǎn)移猖任。
- Netflix Hystrix:容錯管理工具你稚,實(shí)現(xiàn)斷路器模式,通過控制服務(wù)的節(jié)點(diǎn),從而對延遲和故障提供更強(qiáng)大的容錯能力朱躺。
- Netflix Ribbon:客戶端負(fù)載均衡的服務(wù)調(diào)用組件刁赖。
- Netflix Feign:基于Ribbon和Hystrix的聲明式服務(wù)調(diào)用組件。
- Netflix Zuul:微服務(wù)網(wǎng)關(guān)长搀,提供動態(tài)路由宇弛,監(jiān)控,彈性源请,安全等邊緣服務(wù)的框架枪芒。
- Netflix Archaius:配置管理API,包含一系列配置管理API谁尸,提供動態(tài)類型化屬性舅踪、線程安全配置操作、輪詢框架良蛮、回調(diào)機(jī)制等功能抽碌。
- Turbine:聚合服務(wù)器發(fā)送事件流數(shù)據(jù)的一個工具,用來監(jiān)控集群下hystrix的metrics情況决瞳。
- Spring Cloud for Cloud Foundry:通過Oauth2協(xié)議綁定服務(wù)到CloudFoundry货徙,CloudFoundry是VMware推出的開源PaaS云平臺。
- Spring Cloud Sleuth:日志收集工具包皮胡,封裝了Dapper痴颊,Zipkin和HTrace操作,為SpringCloud應(yīng)用實(shí)現(xiàn)了一種分布式追蹤解決方案屡贺。
- Spring Cloud Data Flow:大數(shù)據(jù)操作工具蠢棱,作為Spring XD的替代產(chǎn)品锌杀,通過命令行方式操作數(shù)據(jù)流。
- Spring Cloud Security:基于Spring Secutity的安全工具包裳扯,為你的應(yīng)用程序添加安全控制抛丽,主要是指OAuth2。
- Spring Cloud Consul:封裝了Consul操作饰豺,consul是一個服務(wù)發(fā)現(xiàn)與配置工具,與Docker容器可以無縫集成允蜈。
- Spring Cloud Zookeeper:操作Zookeeper的工具包冤吨,用于使用zookeeper方式的服務(wù)注冊和發(fā)現(xiàn)。
- Spring Cloud Stream:數(shù)據(jù)流操作開發(fā)包饶套,封裝了與Redis漩蟆,Rabbit,Kafka等發(fā)送接收消息妓蛮。
- Spring Cloud CLI:基于 Spring Boot CLI怠李,可以讓你以命令行方式快速建立云組件。
- 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)髓介。
Spring頂級項(xiàng)目
- Spring IO platform:用于系統(tǒng)部署,是可集成的筋现,構(gòu)建現(xiàn)代化應(yīng)用的版本平臺唐础,具體來說當(dāng)你使用maven dependency引入spring jar包時它就在工作了。
- Spring Boot:旨在簡化創(chuàng)建產(chǎn)品級的 Spring 應(yīng)用和服務(wù)矾飞,簡化了配置文件一膨,使用嵌入式web服務(wù)器,含有諸多開箱即用微服務(wù)功能洒沦,可以和spring cloud聯(lián)合部署豹绪。
- Spring Framework:即通常所說的spring 框架,是一個開源的Java/Java EE全功能棧應(yīng)用程序框架微谓,其它spring項(xiàng)目如spring boot也依賴于此框架森篷。
- Spring Cloud:微服務(wù)工具包,為開發(fā)者提供了在分布式系統(tǒng)的配置管理豺型、服務(wù)發(fā)現(xiàn)仲智、斷路器、智能路由姻氨、微代理钓辆、控制總線等開發(fā)工具包。
- Spring XD:是一種運(yùn)行時環(huán)境(服務(wù)器軟件,非開發(fā)框架)前联,組合spring技術(shù)功戚,如spring batch、spring boot似嗤、spring data啸臀,采集大數(shù)據(jù)并處理。
- Spring Data:是一個數(shù)據(jù)訪問及操作的工具包烁落,封裝了很多種數(shù)據(jù)及數(shù)據(jù)庫的訪問相關(guān)技術(shù)乘粒,包括:jdbc、Redis伤塌、MongoDB灯萍、Neo4j等。
- Spring Batch:批處理框架每聪,或說是批量任務(wù)執(zhí)行管理器旦棉,功能包括任務(wù)調(diào)度、日志記錄/跟蹤等药薯。
- Spring Security:是一個能夠?yàn)榛赟pring的企業(yè)應(yīng)用系統(tǒng)提供聲明式的安全訪問控制解決方案的安全框架绑洛。
- Spring Integration:面向企業(yè)應(yīng)用集成(EAI/ESB)的編程框架,支持的通信方式包括HTTP果善、FTP诊笤、TCP/UDP、JMS巾陕、RabbitMQ讨跟、Email等。
- Spring Social:一組工具包鄙煤,一組連接社交服務(wù)API晾匠,如Twitter、Facebook梯刚、LinkedIn凉馆、GitHub等,有幾十個亡资。
- Spring AMQP:消息隊(duì)列操作的工具包澜共,主要是封裝了RabbitMQ的操作。
- Spring HATEOAS:是一個用于支持實(shí)現(xiàn)超文本驅(qū)動的 REST Web 服務(wù)的開發(fā)庫锥腻。
- Spring Mobile:是Spring MVC的擴(kuò)展嗦董,用來簡化手機(jī)上的Web應(yīng)用開發(fā)。
- Spring for Android:是Spring框架的一個擴(kuò)展瘦黑,其主要目的在乎簡化Android本地應(yīng)用的開發(fā)京革,提供RestTemplate來訪問Rest服務(wù)奇唤。
- Spring Web Flow:目標(biāo)是成為管理Web應(yīng)用頁面流程的最佳方案,將頁面跳轉(zhuǎn)流程單獨(dú)管理匹摇,并可配置咬扇。
- Spring LDAP:是一個用于操作LDAP的Java工具包,基于Spring的JdbcTemplate模式廊勃,簡化LDAP訪問懈贺。
- Spring Session:session管理的開發(fā)工具包,讓你可以把session保存到redis等坡垫,進(jìn)行集群化session管理隅居。
- Spring Web Services:是基于Spring的Web服務(wù)框架,提供SOAP服務(wù)開發(fā)葛虐,允許通過多種方式創(chuàng)建Web服務(wù)。
- Spring Shell:提供交互式的Shell可讓你使用簡單的基于Spring的編程模型來開發(fā)命令棉钧,比如Spring Roo命令屿脐。
- Spring Roo:是一種Spring開發(fā)的輔助工具,使用命令行操作來生成自動化項(xiàng)目宪卿,操作非常類似于Rails的诵。
- Spring Scala:為Scala語言編程提供的spring框架的封裝(新的編程語言,Java平臺的Scala于2003年底/2004年初發(fā)布)佑钾。
- Spring BlazeDS Integration:一個開發(fā)RIA工具包西疤,可以集成Adobe Flex、BlazeDS休溶、Spring以及Java技術(shù)創(chuàng)建RIA代赁。
- Spring Loaded:用于實(shí)現(xiàn)java程序和web應(yīng)用的熱部署的開源工具。
- Spring REST Shell:可以調(diào)用Rest服務(wù)的命令行工具兽掰,敲命令行操作Rest服務(wù)芭碍。