各項服務依賴與它,與各種Netflix OSS組件集成,組成微服務的核心,它主要有Eureka, Hystrix, Zuul, Archaius…
服務中心,云端服務發(fā)現,一個基于 REST 的服務,用于定位服務,以實現云端中間層服務發(fā)現和故障轉移。這個是springcloud最重要的小弟,服務中心,任何小弟需要其它小弟支持什么都需要從這里來拿,同樣的你有什么獨門武功的都趕緊過報道,方便以后其它小弟來調用;它的好處是你不需要直接找各種什么小弟支持,只需要到服務中心來領取,也不需要知道提供支持的其它小弟在哪里,還是幾個小弟來支持的,反正拿來用就行,服務中心來保證穩(wěn)定性和質量。
熔斷器,容錯管理工具,旨在通過熔斷機制控制服務和第三方庫的節(jié)點,從而對延遲和故障提供更強大的容錯能力。比如突然某個小弟生病了,但是你還需要它的支持,然后調用之后它半天沒有響應,你卻不知道,一直在等等這個響應;有可能別的小弟也正在調用你的武功絕技,那么當請求多之后,就會發(fā)生嚴重的阻塞影響老大的整體計劃。這個時候Hystrix就派上用場了,當Hystrix發(fā)現某個小弟不在狀態(tài)不穩(wěn)定立馬馬上讓它下線,讓其它小弟來頂上來,或者給你說不用等了這個小弟今天肯定不行,該干嘛趕緊干嘛去別在這排隊了。
配置管理API,包含一系列配置管理API,提供動態(tài)類型化屬性、線程安全配置操作、輪詢框架、回調機制等功能。可以實現動態(tài)獲取配置, 原理是每隔60s(默認,可配置)從配置源讀取一次內容,這樣修改了配置文件后不需要重啟服務就可以使修改后的內容生效,前提使用archaius的API來讀取。
俗稱的配置中心,配置管理工具包,讓你可以把配置放到遠程服務器,集中化管理集群配置,目前支持本地存儲、Git以及Subversion。就是以后大家武器、槍火什么的東西都集中放到一起,別隨便自己帶,方便以后統一管理、升級裝備。
事件、消息總線,用于在集群(例如,配置變化事件)中傳播狀態(tài)變化,可與Spring Cloud Config聯合實現熱部署。相當于水滸傳中日行八百里的神行太保戴宗,確保各個小弟之間消息保持暢通。
Cloud Foundry是VMware推出的業(yè)界第一個開源PaaS云平臺,它支持多種框架、語言、運行時環(huán)境、云平臺及應用服務,使開發(fā)人員能夠在幾秒鐘內進行應用程序的部署和擴展,無需擔心任何基礎架構的問題
其實就是與CloudFoundry進行集成的一套解決方案,抱了Cloud Foundry的大腿。
Spring Cloud Cluster將取代Spring Integration。提供在分布式系統中的集群所需要的基礎功能支持,如:選舉、集群的狀態(tài)一致性、全局鎖、tokens等常見狀態(tài)模式的抽象和實現。
如果把不同的幫派組織成統一的整體,Spring Cloud Cluster已經幫你提供了很多方便組織成統一的工具。
Consul 是一個支持多數據中心分布式高可用的服務發(fā)現和配置共享的服務軟件,由 HashiCorp 公司用 Go 語言開發(fā), 基于 Mozilla Public License 2.0 的協議進行開源. Consul 支持健康檢查,并允許 HTTP 和 DNS 協議調用 API 存儲鍵值對.
Spring Cloud Consul 封裝了Consul操作,consul是一個服務發(fā)現與配置工具,與Docker容器可以無縫集成。
基于spring security的安全工具包,為你的應用程序添加安全控制。這個小弟很牛鼻專門負責整個幫派的安全問題,設置不同的門派訪問特定的資源,不能把秘籍葵花寶典泄漏了。
日志收集工具包,封裝了Dapper和log-based追蹤以及Zipkin和HTrace操作,為SpringCloud應用實現了一種分布式追蹤解決方案。
Spring Cloud Stream是創(chuàng)建消息驅動微服務應用的框架。Spring Cloud Stream是基于Spring Boot創(chuàng)建,用來建立單獨的/工業(yè)級spring應用,使用spring integration提供與消息代理之間的連接。數據流操作開發(fā)包,封裝了與Redis,Rabbit、Kafka等發(fā)送接收消息。
一個業(yè)務會牽扯到多個任務,任務之間是通過事件觸發(fā)的,這就是Spring Cloud stream要干的事了
ZooKeeper是一個分布式的,開放源碼的分布式應用程序協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要組件。它是一個為分布式應用提供一致性服務的軟件,提供的功能包括:配置維護、域名服務、分布式同步、組服務等。ZooKeeper的目標就是封裝好復雜易出錯的關鍵服務,將簡單易用的接口和性能高效、功能穩(wěn)定的系統提供給用戶。
操作Zookeeper的工具包,用于使用zookeeper方式的服務發(fā)現和配置管理,抱了Zookeeper的大腿。
Spring Boot式的啟動項目,為Spring Cloud提供開箱即用的依賴管理。
基于 Spring Boot CLI,可以讓你以命令行方式快速建立云組件。
Spring Boot 是 Spring 的一套快速配置腳手架,可以基于Spring Boot 快速開發(fā)單個微服務,Spring Cloud是一個基于Spring Boot實現的云應用開發(fā)工具;Spring Boot專注于快速、方便集成的單個個體,Spring Cloud是關注全局的服務治理框架;Spring Boot使用了默認大于配置的理念,很多集成方案已經幫你選擇好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring Boot來實現,可以不基于Spring Boot嗎?不可以。
Spring Boot可以離開Spring Cloud獨立使用開發(fā)項目,但是Spring Cloud離不開Spring Boot,屬于依賴的關系。
spring -> spring boot > Spring Cloud 這樣的關系。
微服務的框架那么多比如:dubbo、Kubernetes,為什么就要使用Spring Cloud的呢?
Spring Cloud對于中小型互聯網公司來說是一種福音,因為這類公司往往沒有實力或者沒有足夠的資金投入去開發(fā)自己的分布式系統基礎設施,使用Spring Cloud一站式解決方案能在從容應對業(yè)務發(fā)展的同時大大減少開發(fā)成本。同時,隨著近幾年微服務架構和Docker容器概念的火爆,也會讓Spring Cloud在未來越來越“云”化的軟件開發(fā)風格中立有一席之地,尤其是在目前五花八門的分布式解決方案中提供了標準化的、全站式的技術方案,意義可能會堪比當前Servlet規(guī)范的誕生,有效推進服務端軟件系統技術水平的進步
========================
摘抄自純潔的微笑博客
:http://www.ityouknow.com/springcloud/2017/05/01/simple-springcloud.html