spring cloud是一系列框架的有序集合,利用spring boot開發的便利簡化了分佈式系統基礎設施的開發。包括服務發現(相似於dubbo的服務註冊中心和服務提供者)、配置中心(雲配置)、消息總線、負載均衡、斷路器、數據監控、服務網關、服務調用、數據流和批量任務。spring
springcloud是基於springboot實現的微服務架構開發工具,他爲微服務中設計的配置管理、服務治理、斷路器、智能路由、微代、控制總線、全局鎖、決策精選、分佈式會話和集羣狀態管理等操做提供了一套簡單的開發方式。數據庫
這但是個大boss,地位僅次於老大,老大各項服務依賴與它,與各類Netflix OSS組件集成,組成微服務的核心,它的小弟主要有Eureka, Hystrix, Zuul, Archaius... 太多了編程
Netflix Eureka後端
服務中心,雲端服務發現,一個基於 REST 的服務,用於定位服務,以實現雲端中間層服務發現和故障轉移。這個但是springcloud最牛鼻的小弟,服務中心,任何小弟須要其它小弟支持什麼都須要從這裏來拿,一樣的你有什麼獨門武功的都趕忙過報道,方便之後其它小弟來調用;它的好處是你不須要直接找各類什麼小弟支持,只須要到服務中心來領取,也不須要知道提供支持的其它小弟在哪裏,仍是幾個小弟來支持的,反正拿來用就行,服務中心來保證穩定性和質量。安全
Netflix Hystrixspringboot
熔斷器,容錯管理工具,旨在經過熔斷機制控制服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力。好比忽然某個小弟生病了,可是你還須要它的支持,而後調用以後它半天沒有響應,你殊不知道,一直在等等這個響應;有可能別的小弟也正在調用你的武功絕技,那麼當請求多以後,就會發生嚴重的阻塞影響老大的總體計劃。這個時候Hystrix就派上用場了,當Hystrix發現某個小弟不在狀態不穩定立馬立刻讓它下線,讓其它小弟來頂上來,或者給你說不用等了這個小弟今天確定不行,該幹嗎趕忙幹嗎去別在這排隊了。服務器
Netflix Zuul架構
Zuul 是在雲平臺上提供動態路由,監控,彈性,安全等邊緣服務的框架。Zuul 至關因而設備和 Netflix 流應用的 Web 網站後端全部請求的前門。當其它門派來找大哥辦事的時候必定要先通過zuul,看下有沒有帶刀子什麼的給攔截回去,或者是須要找那個小弟的直接給帶過去。app
Netflix Archaius負載均衡
配置管理API,包含一系列配置管理API,提供動態類型化屬性、線程安全配置操做、輪詢框架、回調機制等功能。能夠實現動態獲取配置,
原理是每隔60s(默認,可配置)從配置源讀取一次內容,這樣修改了配置文件後不須要重啓服務就可使修改後的內容生效,前提使用archaius的API來讀取。
俗稱的配置中心,配置管理工具包,讓你能夠把配置放到遠程服務器,集中化管理集羣配置,目前支持本地存儲、Git以及Subversion。就是之後你們武器、槍火什麼的東西都集中放到一塊兒,別隨便本身帶,方便之後統一管理、升級裝備。
事件、消息總線,用於在集羣(例如,配置變化事件)中傳播狀態變化,可與Spring Cloud Config聯合實現熱部署。至關於水滸傳中日行八百里的神行太保戴宗,確保各個小弟之間消息保持暢通。
Cloud Foundry是VMware推出的業界第一個開源PaaS雲平臺,它支持多種框架、語言、運行時環境、雲平臺及應用服務,使開發人員可以在幾秒鐘內進行應用程序的部署和擴展,無需擔憂任何基礎架構的問題
其實就是與CloudFoundry進行集成的一套解決方案,抱了Cloud Foundry的大腿。
Spring Cloud Cluster將取代Spring Integration。提供在分佈式系統中的集羣所須要的基礎功能支持,如:選舉、集羣的狀態一致性、全局鎖、tokens等常見狀態模式的抽象和實現。
若是把不一樣的幫派組織成統一的總體,Spring Cloud Cluster已經幫你提供了不少方便組織成統一的工具。
Consul 是一個支持多數據中心分佈式高可用的服務發現和配置共享的服務軟件,由 HashiCorp 公司用 Go 語言開發, 基於 Mozilla Public License 2.0 的協議進行開源. Consul 支持健康檢查,並容許 HTTP 和 DNS 協議調用 API 存儲鍵值對.
Spring Cloud Consul 封裝了Consul操做,consul是一個服務發現與配置工具,與Docker容器能夠無縫集成。
Spring Cloud Security
基於spring security的安全工具包,爲你的應用程序添加安全控制。這個小弟很牛鼻專門負責整個幫派的安全問題,設置不一樣的門派訪問特定的資源,不能把祕籍葵花寶典泄漏了。
Spring Cloud Sleuth
日誌收集工具包,封裝了Dapper和log-based追蹤以及Zipkin和HTrace操做,爲SpringCloud應用實現了一種分佈式追蹤解決方案。
Spring Cloud Data Flow
Data flow 是一個用於開發和執行大範圍數據處理其模式包括ETL,批量運算和持續運算的統一編程模型和託管服務。
對於在現代運行環境中可組合的微服務程序來講,Spring Cloud data flow是一個原生雲可編配的服務。使用Spring Cloud data flow,開發者能夠爲像數據抽取,實時分析,和數據導入/導出這種常見用例建立和編配數據通道 (data pipelines)。
Spring Cloud data flow 是基於原生雲對 spring XD的從新設計,該項目目標是簡化大數據應用的開發。Spring XD 的流處理和批處理模塊的重構分別是基於 spring boot的stream 和 task/batch 的微服務程序。這些程序如今都是自動部署單元並且他們原生的支持像 Cloud Foundry、Apache YARN、Apache Mesos和Kubernetes 等現代運行環境。
Spring Cloud data flow 爲基於微服務的分佈式流處理和批處理數據通道提供了一系列模型和最佳實踐。
Spring Cloud Stream
Spring Cloud Stream是建立消息驅動微服務應用的框架。Spring Cloud Stream是基於spring boot建立,用來創建單獨的/工業級spring應用,使用spring integration提供與消息代理之間的鏈接。數據流操做開發包,封裝了與Redis,Rabbit、Kafka等發送接收消息。
一個業務會牽扯到多個任務,任務之間是經過事件觸發的,這就是Spring Cloud stream要乾的事了
Spring Cloud Task
Spring Cloud Task 主要解決短命微服務的任務管理,任務調度的工做,好比說某些定時任務晚上就跑一次,或者某項數據分析臨時就跑幾回。
Spring Cloud Zookeeper
ZooKeeper是一個分佈式的,開放源碼的分佈式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。它是一個爲分佈式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分佈式同步、組服務等。ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩定的系統提供給用戶。
操做Zookeeper的工具包,用於使用zookeeper方式的服務發現和配置管理,抱了Zookeeper的大腿。
Spring Cloud Connectors
Spring Cloud Connectors 簡化了鏈接到服務的過程和從雲平臺獲取操做的過程,有很強的擴展性,能夠利用Spring Cloud Connectors來構建你本身的雲平臺。
便於雲端應用程序在各類PaaS平臺鏈接到後端,如:數據庫和消息代理服務。
Spring Cloud Starters
Spring Boot式的啓動項目,爲Spring Cloud提供開箱即用的依賴管理。
Spring Cloud CLI
基於 Spring Boot CLI,可讓你以命令行方式快速創建雲組件。