Spring Cloud是什么

轉載

Spring Cloud是一系列框架的有序集合蒂胞。它利用Spring Boot的開發(fā)便利性巧妙地簡化了分布式系統(tǒng)基礎設施的開發(fā)权烧,如服務發(fā)現(xiàn)注冊识虚、配置中心、消息總線误算、負載均衡仰美、斷路器迷殿、數據監(jiān)控等,都可以用Spring Boot的開發(fā)風格做到一鍵啟動和部署咖杂。Spring并沒有重復制造輪子庆寺,它只是將目前各家公司開發(fā)的比較成熟、經得起實際考驗的服務框架組合起來诉字,通過Spring Boot風格進行再封裝屏蔽掉了復雜的配置和實現(xiàn)原理懦尝,最終給開發(fā)者留出了一套簡單易懂、易部署和易維護的分布式系統(tǒng)開發(fā)工具包奏窑。

微服務是可以獨立部署导披、水平擴展、獨立訪問(或者有獨立的數據庫)的服務單元埃唯,springcloud就是這些微服務的大管家,采用了微服務這種架構之后鹰晨,項目的數量會非常多墨叛,springcloud做為大管家需要管理好這些微服務,自然需要很多小弟來幫忙模蜡。

主要的小弟有:Spring Cloud Config漠趁、Spring Cloud Netflix(Eureka、Hystrix忍疾、Zuul闯传、Archaius…)、Spring Cloud Bus卤妒、Spring Cloud for Cloud Foundry甥绿、Spring Cloud Cluster、Spring Cloud Consul则披、Spring Cloud Security共缕、Spring Cloud Sleuth、Spring Cloud Data Flow士复、Spring Cloud Stream图谷、Spring Cloud Task、Spring Cloud Zookeeper阱洪、Spring Cloud Connectors便贵、Spring Cloud Starters、Spring Cloud CLI冗荸,每個小弟身懷獨門絕技武功高強下面來做一一介紹承璃。

核心成員
Spring Cloud Netflix
這可是個大boss,地位僅次于老大俏竞,老大各項服務依賴與它绸硕,與各種Netflix OSS組件集成堂竟,組成微服務的核心,它的小弟主要有Eureka, Hystrix, Zuul, Archaius… 太多了

Netflix Eureka

服務中心玻佩,云端服務發(fā)現(xiàn)出嘹,一個基于 REST 的服務,用于定位服務咬崔,以實現(xiàn)云端中間層服務發(fā)現(xiàn)和故障轉移税稼。這個可是springcloud最牛鼻的小弟,服務中心垮斯,任何小弟需要其它小弟支持什么都需要從這里來拿郎仆,同樣的你有什么獨門武功的都趕緊過報道,方便以后其它小弟來調用兜蠕;它的好處是你不需要直接找各種什么小弟支持扰肌,只需要到服務中心來領取,也不需要知道提供支持的其它小弟在哪里熊杨,還是幾個小弟來支持的曙旭,反正拿來用就行,服務中心來保證穩(wěn)定性和質量晶府。

Netflix Hystrix

熔斷器桂躏,容錯管理工具,旨在通過熔斷機制控制服務和第三方庫的節(jié)點,從而對延遲和故障提供更強大的容錯能力川陆。比如突然某個小弟生病了剂习,但是你還需要它的支持,然后調用之后它半天沒有響應较沪,你卻不知道鳞绕,一直在等等這個響應;有可能別的小弟也正在調用你的武功絕技购对,那么當請求多之后猾昆,就會發(fā)生嚴重的阻塞影響老大的整體計劃。這個時候Hystrix就派上用場了骡苞,當Hystrix發(fā)現(xiàn)某個小弟不在狀態(tài)不穩(wěn)定立馬馬上讓它下線垂蜗,讓其它小弟來頂上來,或者給你說不用等了這個小弟今天肯定不行解幽,該干嘛趕緊干嘛去別在這排隊了贴见。

Netflix Zuul

Zuul 是在云平臺上提供動態(tài)路由,監(jiān)控,彈性,安全等邊緣服務的框架。Zuul 相當于是設備和 Netflix 流應用的 Web 網站后端所有請求的前門躲株。當其它門派來找大哥辦事的時候一定要先經過zuul,看下有沒有帶刀子什么的給攔截回去片部,或者是需要找那個小弟的直接給帶過去。

Netflix Archaius

配置管理API霜定,包含一系列配置管理API档悠,提供動態(tài)類型化屬性廊鸥、線程安全配置操作、輪詢框架辖所、回調機制等功能惰说。可以實現(xiàn)動態(tài)獲取配置缘回, 原理是每隔60s(默認吆视,可配置)從配置源讀取一次內容,這樣修改了配置文件后不需要重啟服務就可以使修改后的內容生效酥宴,前提使用archaius的API來讀取啦吧。

Spring Cloud Config
俗稱的配置中心,配置管理工具包拙寡,讓你可以把配置放到遠程服務器授滓,集中化管理集群配置,目前支持本地存儲肆糕、Git以及Subversion褒墨。就是以后大家武器、槍火什么的東西都集中放到一起擎宝,別隨便自己帶,方便以后統(tǒng)一管理浑玛、升級裝備绍申。

Spring Cloud Bus
事件、消息總線顾彰,用于在集群(例如极阅,配置變化事件)中傳播狀態(tài)變化,可與Spring Cloud Config聯(lián)合實現(xiàn)熱部署涨享。相當于水滸傳中日行八百里的神行太保戴宗筋搏,確保各個小弟之間消息保持暢通。

Spring Cloud for Cloud Foundry
Cloud Foundry是VMware推出的業(yè)界第一個開源PaaS云平臺厕隧,它支持多種框架奔脐、語言、運行時環(huán)境吁讨、云平臺及應用服務髓迎,使開發(fā)人員能夠在幾秒鐘內進行應用程序的部署和擴展,無需擔心任何基礎架構的問題

其實就是與CloudFoundry進行集成的一套解決方案建丧,抱了Cloud Foundry的大腿排龄。

Spring Cloud Cluster
Spring Cloud Cluster將取代Spring Integration。提供在分布式系統(tǒng)中的集群所需要的基礎功能支持翎朱,如:選舉橄维、集群的狀態(tài)一致性尺铣、全局鎖、tokens等常見狀態(tài)模式的抽象和實現(xiàn)争舞。

如果把不同的幫派組織成統(tǒng)一的整體凛忿,Spring Cloud Cluster已經幫你提供了很多方便組織成統(tǒng)一的工具。

Spring Cloud Consul
Consul 是一個支持多數據中心分布式高可用的服務發(fā)現(xiàn)和配置共享的服務軟件,由 HashiCorp 公司用 Go 語言開發(fā), 基于 Mozilla Public License 2.0 的協(xié)議進行開源. Consul 支持健康檢查,并允許 HTTP 和 DNS 協(xié)議調用 API 存儲鍵值對.

Spring Cloud Consul 封裝了Consul操作兑障,consul是一個服務發(fā)現(xiàn)與配置工具侄非,與Docker容器可以無縫集成。

其它小弟
Spring Cloud Security

基于spring security的安全工具包流译,為你的應用程序添加安全控制逞怨。這個小弟很牛鼻專門負責整個幫派的安全問題,設置不同的門派訪問特定的資源福澡,不能把秘籍葵花寶典泄漏了叠赦。

Spring Cloud Sleuth

日志收集工具包,封裝了Dapper和log-based追蹤以及Zipkin和HTrace操作革砸,為SpringCloud應用實現(xiàn)了一種分布式追蹤解決方案除秀。

Spring Cloud Data Flow

Data flow 是一個用于開發(fā)和執(zhí)行大范圍數據處理其模式包括ETL,批量運算和持續(xù)運算的統(tǒng)一編程模型和托管服務算利。

對于在現(xiàn)代運行環(huán)境中可組合的微服務程序來說册踩,Spring Cloud data flow是一個原生云可編配的服務。使用Spring Cloud data flow效拭,開發(fā)者可以為像數據抽取暂吉,實時分析,和數據導入/導出這種常見用例創(chuàng)建和編配數據通道 (data pipelines)缎患。

Spring Cloud data flow 是基于原生云對 spring XD的重新設計慕的,該項目目標是簡化大數據應用的開發(fā)。Spring XD 的流處理和批處理模塊的重構分別是基于 Spring Boot的stream 和 task/batch 的微服務程序挤渔。這些程序現(xiàn)在都是自動部署單元而且他們原生的支持像 Cloud Foundry肮街、Apache YARN、Apache Mesos和Kubernetes 等現(xiàn)代運行環(huán)境判导。

Spring Cloud data flow 為基于微服務的分布式流處理和批處理數據通道提供了一系列模型和最佳實踐嫉父。

Spring Cloud Stream

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要干的事了

Spring Cloud Task

Spring Cloud Task 主要解決短命微服務的任務管理吩抓,任務調度的工作,比如說某些定時任務晚上就跑一次赴恨,或者某項數據分析臨時就跑幾次疹娶。

Spring Cloud Zookeeper

ZooKeeper是一個分布式的,開放源碼的分布式應用程序協(xié)調服務伦连,是Google的Chubby一個開源的實現(xiàn)雨饺,是Hadoop和Hbase的重要組件。它是一個為分布式應用提供一致性服務的軟件惑淳,提供的功能包括:配置維護额港、域名服務、分布式同步歧焦、組服務等移斩。ZooKeeper的目標就是封裝好復雜易出錯的關鍵服務,將簡單易用的接口和性能高效绢馍、功能穩(wěn)定的系統(tǒng)提供給用戶向瓷。

操作Zookeeper的工具包,用于使用zookeeper方式的服務發(fā)現(xiàn)和配置管理舰涌,抱了Zookeeper的大腿猖任。

Spring Cloud Connectors

Spring Cloud Connectors 簡化了連接到服務的過程和從云平臺獲取操作的過程,有很強的擴展性瓷耙,可以利用Spring Cloud Connectors來構建你自己的云平臺超升。

便于云端應用程序在各種PaaS平臺連接到后端,如:數據庫和消息代理服務哺徊。

Spring Cloud Starters

Spring Boot式的啟動項目,為Spring Cloud提供開箱即用的依賴管理乾闰。

Spring Cloud CLI

基于 Spring Boot CLI落追,可以讓你以命令行方式快速建立云組件。

和Spring Boot 是什么關系
Spring Boot 是 Spring 的一套快速配置腳手架涯肩,可以基于Spring Boot 快速開發(fā)單個微服務轿钠,Spring Cloud是一個基于Spring Boot實現(xiàn)的云應用開發(fā)工具;Spring Boot專注于快速病苗、方便集成的單個個體疗垛,Spring Cloud是關注全局的服務治理框架;Spring Boot使用了默認大于配置的理念硫朦,很多集成方案已經幫你選擇好了贷腕,能不配置就不配置,Spring Cloud很大的一部分是基于Spring Boot來實現(xiàn),可以不基于Spring Boot嗎?不可以泽裳。

Spring Boot可以離開Spring Cloud獨立使用開發(fā)項目瞒斩,但是Spring Cloud離不開Spring Boot,屬于依賴的關系涮总。

spring -> spring booot > Spring Cloud 這樣的關系胸囱。

Spring Cloud的優(yōu)勢
微服務的框架那么多比如:dubbo、Kubernetes瀑梗,為什么就要使用Spring Cloud的呢烹笔?

產出于spring大家族,spring在企業(yè)級開發(fā)框架中無人能敵抛丽,來頭很大谤职,可以保證后續(xù)的更新、完善铺纽。比如dubbo現(xiàn)在就差不多死了
有Spring Boot 這個獨立干將可以省很多事柬帕,大大小小的活Spring Boot都搞的挺不錯。
作為一個微服務治理的大家伙狡门,考慮的很全面陷寝,幾乎服務治理的方方面面都考慮到了,方便開發(fā)開箱即用其馏。
Spring Cloud 活躍度很高凤跑,教程很豐富,遇到問題很容易找到解決方案
輕輕松松幾行代碼就完成了熔斷叛复、均衡負載仔引、服務中心的各種平臺功能
Spring Cloud對于中小型互聯(lián)網公司來說是一種福音,因為這類公司往往沒有實力或者沒有足夠的資金投入去開發(fā)自己的分布式系統(tǒng)基礎設施褐奥,使用Spring Cloud一站式解決方案能在從容應對業(yè)務發(fā)展的同時大大減少開發(fā)成本咖耘。同時,隨著近幾年微服務架構和Docker容器概念的火爆撬码,也會讓Spring Cloud在未來越來越“云”化的軟件開發(fā)風格中立有一席之地儿倒,尤其是在目前五花八門的分布式解決方案中提供了標準化的、全站式的技術方案呜笑,意義可能會堪比當前Servlet規(guī)范的誕生夫否,有效推進服務端軟件系統(tǒng)技術水平的進步。

原文鏈接:http://www.ityouknow.com/
作者:純潔的微笑
轉載請注明出處=行病凰慈!

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市驼鹅,隨后出現(xiàn)的幾起案子微谓,更是在濱河造成了極大的恐慌森篷,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件堰酿,死亡現(xiàn)場離奇詭異疾宏,居然都是意外死亡,警方通過查閱死者的電腦和手機触创,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門坎藐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人哼绑,你說我怎么就攤上這事岩馍。” “怎么了抖韩?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵蛀恩,是天一觀的道長。 經常有香客問我茂浮,道長双谆,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任席揽,我火速辦了婚禮顽馋,結果婚禮上,老公的妹妹穿的比我還像新娘幌羞。我一直安慰自己寸谜,他們只是感情好,可當我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布属桦。 她就那樣靜靜地躺著熊痴,像睡著了一般。 火紅的嫁衣襯著肌膚如雪聂宾。 梳的紋絲不亂的頭發(fā)上果善,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天,我揣著相機與錄音系谐,去河邊找鬼岭埠。 笑死,一個胖子當著我的面吹牛蔚鸥,可吹牛的內容都是我干的。 我是一名探鬼主播许赃,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼止喷,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了混聊?” 一聲冷哼從身側響起弹谁,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后预愤,有當地人在樹林里發(fā)現(xiàn)了一具尸體沟于,經...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年植康,在試婚紗的時候發(fā)現(xiàn)自己被綠了旷太。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡销睁,死狀恐怖供璧,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情冻记,我是刑警寧澤睡毒,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站冗栗,受9級特大地震影響演顾,放射性物質發(fā)生泄漏。R本人自食惡果不足惜隅居,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一钠至、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧军浆,春花似錦棕洋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至赞季,卻和暖如春愧捕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背申钩。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工次绘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人撒遣。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓邮偎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親义黎。 傳聞我的和親對象是個殘疾皇子禾进,可洞房花燭夜當晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內容