SpringCloud是什麼?

參考連接:java

http://blog.csdn.net/forezp/article/details/70148833 web

1、概念定義 

      Spring Cloud是一個微服務框架,相比Dubbo等RPC框架, Spring Cloud提供的全套的分佈式系統解決方案 redis

      Spring Cloud對微服務基礎框架Netflix的多個開源組件進行了封裝,同時又實現了和雲端平臺以及和Spring Boot開發框架的集成。 spring

      Spring Cloud爲微服務架構開發涉及的配置管理,服務治理,熔斷機制,智能路由,微代理,控制總線,一次性token,全局一致性鎖,leader選舉,分佈式session,集羣狀態管理等操做提供了一種簡單的開發方式。數據庫

      Spring Cloud 爲開發者提供了快速構建分佈式系統的工具,開發者能夠快速的啓動服務或構建應用、同時可以快速和雲平臺資源進行對接。   編程

 

2、Spring Cloud的項目的位置

Sping Cloud是Spring的一個頂級項目,Spring的頂級項目列表以下安全

  •  Spring IO platform:用於系統部署,是可集成的,構建現代化應用的版本平臺,具體來講當你使用maven dependency引入spring jar包時它就在工做了。
  •  Spring Boot:旨在簡化建立產品級的 Spring 應用和服務,簡化了配置文件,使用嵌入式web服務器,含有諸多開箱即用微服務功能,能夠和spring cloud聯合部署。
  •  Spring Framework:即一般所說的spring 框架,是一個開源的Java/Java EE全功能棧應用程序框架,其它spring項目如spring boot也依賴於此框架。
  •  Spring Cloud:微服務工具包,爲開發者提供了在分佈式系統的配置管理、服務發現、斷路器、智能路由、微代理、控制總線等開發工具包。
  •  Spring XD:是一種運行時環境(服務器軟件,非開發框架),組合spring技術,如spring batch、spring boot、spring data,採集大數據並處理。
  •  Spring Data:是一個數據訪問及操做的工具包,封裝了不少種數據及數據庫的訪問相關技術,包括:jdbc、Redis、MongoDB、Neo4j等。
  •  Spring Batch:批處理框架,或說是批量任務執行管理器,功能包括任務調度、日誌記錄/跟蹤等。
  •  Spring Security:是一個可以爲基於Spring的企業應用系統提供聲明式的安全訪問控制解決方案的安全框架。
  •  Spring Integration:面向企業應用集成(EAI/ESB)的編程框架,支持的通訊方式包括HTTP、FTP、TCP/UDP、JMS、RabbitMQ、Email等。
  •  Spring Social:一組工具包,一組鏈接社交服務API,如Twitter、Facebook、LinkedIn、GitHub等,有幾十個。
  •  Spring AMQP:消息隊列操做的工具包,主要是封裝了RabbitMQ的操做。
  •  Spring HATEOAS:是一個用於支持實現超文本驅動的 REST Web 服務的開發庫。
  •  Spring Mobile:是Spring MVC的擴展,用來簡化手機上的Web應用開發。
  •  Spring for Android:是Spring框架的一個擴展,其主要目的在意簡化Android本地應用的開發,提供RestTemplate來訪問Rest服務。
  •  Spring Web Flow:目標是成爲管理Web應用頁面流程的最佳方案,將頁面跳轉流程單獨管理,並可配置。
  •  Spring LDAP:是一個用於操做LDAP的Java工具包,基於Spring的JdbcTemplate模式,簡化LDAP訪問。
  •  Spring Session:session管理的開發工具包,讓你能夠把session保存到redis等,進行集羣化session管理。
  •  Spring Web Services:是基於Spring的Web服務框架,提供SOAP服務開發,容許經過多種方式建立Web服務。
  •  Spring Shell:提供交互式的Shell可以讓你使用簡單的基於Spring的編程模型來開發命令,好比Spring Roo命令。
  •  Spring Roo:是一種Spring開發的輔助工具,使用命令行操做來生成自動化項目,操做很是相似於Rails。
  •  Spring Scala:爲Scala語言編程提供的spring框架的封裝(新的編程語言,Java平臺的Scala於2003年末/2004年初發布)。
  •  Spring BlazeDS Integration:一個開發RIA工具包,能夠集成Adobe Flex、BlazeDS、Spring以及Java技術建立RIA。
  •  Spring Loaded:用於實現java程序和web應用的熱部署的開源工具。
  •  Spring REST Shell:能夠調用Rest服務的命令行工具,敲命令行操做Rest服務。

3、Spring Cloud的子項目

Spring Cloud包含了不少子項目,如:服務器

 

  • Spring Cloud Config:配置管理工具,支持使用Git存儲配置內容,支持應用配置的外部化存儲,支持客戶端配置信息刷新、加解密配置內容等
  • Spring Cloud Bus:事件、消息總線,用於在集羣(例如,配置變化事件)中傳播狀態變化,可與Spring Cloud Config聯合實現熱部署。
  • Spring Cloud Netflix:針對多種Netflix組件提供的開發工具包,其中包括Eureka、Hystrix、Zuul、Archaius等。
  •                       Netflix Eureka:一個基於rest服務的服務治理組件,包括服務註冊中心、服務註冊與服務發現機制的實現,實現了雲端負載均衡和中間層服務器的故障轉移。
  •                       Netflix Hystrix:容錯管理工具,實現斷路器模式,經過控制服務的節點,從而對延遲和故障提供更強大的容錯能力。
  •                       Netflix Ribbon:客戶端負載均衡的服務調用組件。
  •                       Netflix Feign:基於Ribbon和Hystrix的聲明式服務調用組件。
  •                       Netflix Zuul:微服務網關,提供動態路由,訪問過濾等服務。
  •                       Netflix Archaius:配置管理API,包含一系列配置管理API,提供動態類型化屬性、線程安全配置操做、輪詢框架、回調機制等功能。
  • Spring Cloud for Cloud Foundry:經過Oauth2協議綁定服務到CloudFoundry,CloudFoundry是VMware推出的開源PaaS雲平臺。
  • Spring Cloud Sleuth:日誌收集工具包,封裝了Dapper,Zipkin和HTrace操做。
  • Spring Cloud Data Flow:大數據操做工具,經過命令行方式操做數據流。
  • Spring Cloud Security:安全工具包,爲你的應用程序添加安全控制,主要是指OAuth2。
  • Spring Cloud Consul:封裝了Consul操做,consul是一個服務發現與配置工具,與Docker容器能夠無縫集成。
  • Spring Cloud Zookeeper:操做Zookeeper的工具包,用於使用zookeeper方式的服務註冊和發現。
  • Spring Cloud Stream:數據流操做開發包,封裝了與Redis,Rabbit、Kafka等發送接收消息。
  • Spring Cloud CLI:基於 Spring Boot CLI,可讓你以命令行方式快速創建雲組件。

4、Spring Cloud的 版本

Spring Cloud不像其餘Spring子項目那樣相對獨立,它是一個擁有諸多子項目的大型綜合項目。session

Spring Cloud能夠說是微服務架構解決方案的綜合套件組合,其包含的子項目也都獨立進行着內容更新與迭代,各自都維護着本身的發佈版本號。架構

所以每一個Spring Cloud版本,包含着多個不一樣版本的子項目,爲了管理每一個版本的子項目清單,避免SpringCloud版本號與其子項目版本號混淆,沒有采用版本號方式,而是採用命名方式。

這些版本的名字採用了倫敦地鐵站的名字,根據字母表順序來對應版本時間順序,如:Angel.SR6,Brixton.SR5,Brixton.SR7,Camden.M1.

注意:使用Brixton版本要注意SpringBoot的對應版本,必需要使用1.3.x,而不能使用1.4.x

相關文章
相關標籤/搜索