springcloud(一)-初识
springCloud簡介
盡管springCloud帶有“cloud”字樣,但它并不是云計算解決方案,而是在SpringBoot基礎上構建的,用于快速構建分布式系統的通用的工具集。從技術架構上降低了對大型系統構建的要求,使我們以非常低的成本(技術或者硬件)搭建一套高效、分布式、容錯的平臺,但Spring Cloud也不是沒有缺點,小型獨立的項目不適合使用,另外對分布式事務的支持暫時也沒有。
springcloud特點
上面我們說了,springCloud是基于springboot開發的,那么springboot擁有的特點,springcloud也都有:
springcloud工具集
上面我們提到,springcloud是一個工具集,那么它下面肯定有若干個小弟。我們先打個照面。
主要成員
Spring Cloud Netflix
這可是個大boss,地位僅次于老大,老大各項服務依賴與它,與各種Netflix OSS組件集成,組成微服務的核心,它的小弟主要有Eureka, Hystrix, Zuul, Archaius... 太多了
Netflix Eureka
服務中心,云端服務發現,一個基于 REST 的服務,用于定位服務,以實現云端中間層服務發現和故障轉移。這個可是springcloud最牛鼻的小弟,服務中心,任何小弟需要其它小弟支持什么都需要從這里來拿,同樣的你有什么獨門武功的都趕緊過報道,方便以后其它小弟來調用;它的好處是你不需要直接找各種什么小弟支持,只需要到服務中心來領取,也不需要知道提供支持的其它小弟在哪里,還是幾個小弟來支持的,反正拿來用就行,服務中心來保證穩定性和質量。
Netflix Hystrix
熔斷器,容錯管理工具,旨在通過熔斷機制控制服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力。比如突然某個小弟生病了,但是你還需要它的支持,然后調用之后它半天沒有響應,你卻不知道,一直在等等這個響應;有可能別的小弟也正在調用你的武功絕技,那么當請求多之后,就會發生嚴重的阻塞影響老大的整體計劃。這個時候Hystrix就派上用場了,當Hystrix發現某個小弟不在狀態不穩定立馬馬上讓它下線,讓其它小弟來頂上來,或者給你說不用等了這個小弟今天肯定不行,該干嘛趕緊干嘛去別在這排隊了。
Netflix Zuul
Zuul 是在云平臺上提供動態路由,監控,彈性,安全等邊緣服務的框架。Zuul 相當于是設備和 Netflix 流應用的 Web 網站后端所有請求的前門。當其它門派來找大哥辦事的時候一定要先經過zuul,看下有沒有帶刀子什么的給攔截回去,或者是需要找那個小弟的直接給帶過去。
Netflix Archaius
配置管理API,包含一系列配置管理API,提供動態類型化屬性、線程安全配置操作、輪詢框架、回調機制等功能。可以實現動態獲取配置,
原理是每隔60s(默認,可配置)從配置源讀取一次內容,這樣修改了配置文件后不需要重啟服務就可以使修改后的內容生效,前提使用archaius的API來讀取。
Spring Cloud Config
俗稱的配置中心,配置管理工具包,讓你可以把配置放到遠程服務器,集中化管理集群配置,目前支持本地存儲、Git以及Subversion。就是以后大家武器、槍火什么的東西都集中放到一起,別隨便自己帶,方便以后統一管理、升級裝備。
Spring Cloud Bus
事件、消息總線,用于在集群(例如,配置變化事件)中傳播狀態變化,可與Spring Cloud Config聯合實現熱部署。相當于水滸傳中日行八百里的神行太保戴宗,確保各個小弟之間消息保持暢通。
Spring Cloud for Cloud Foundry
Cloud Foundry是VMware推出的業界第一個開源PaaS云平臺,它支持多種框架、語言、運行時環境、云平臺及應用服務,使開發人員能夠在幾秒鐘內進行應用程序的部署和擴展,無需擔心任何基礎架構的問題
其實就是與CloudFoundry進行集成的一套解決方案,抱了Cloud Foundry的大腿。
Spring Cloud Cluster
Spring Cloud Cluster將取代Spring Integration。提供在分布式系統中的集群所需要的基礎功能支持,如:選舉、集群的狀態一致性、全局鎖、tokens等常見狀態模式的抽象和實現。
如果把不同的幫派組織成統一的整體,Spring Cloud Cluster已經幫你提供了很多方便組織成統一的工具。
Spring Cloud Consul
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,可以讓你以命令行方式快速建立云組件。
?
springCloud版本
通常情況下,spring框架的版本號的命名形式是“主版本號.次版本號.增量版本號.里程碑版本號”,對不對。例如Spring Framework穩定版本4.3.5.RELEASE,里程碑版本5.0.0.M4等。其中,主版本號表示項目的重大重構;次版本號表示新特性的添加和變化;增量版本號一般表示BUG修復;里程碑版本號表示某版本號的里程碑。
然而,spring cloud并未使用這種方式管理版本。下面來詳細探討一下spring cloud的版本。
spring Cloud是一個綜合項目,它包含很多子項目。就是上面列舉出來的,這些子項目自己維護著自己的版本號,和其他規則一樣。那么spring cloud為了區別于這些子項目,我就不能這樣定義了,畢竟我是大哥呀!
通常主版本號都是 1,2,3,4...順序下去。spring cloud的主版本號有Angel,Brixton,Camden,Dalston,Edgware,Finchley等。這些都是倫敦地鐵站的名稱,注意首字母你會發現,它們按照字母順序發行。那么同一個版本需要做些小修小改呢?后面怎么表示?用SRX的形式命名。比如:
首先發行:Edgware RELEASE.
做了一次小修小改之后,再發行:Edgware SR1
再做一次修補,發行:Edgware SR2
就是這樣。
?
spring cloud/spring boot版本兼容性
- Angel版本基于Spring boot 1.2.x構建,在一些場景下,與Spring Boot 1.3.x及以上版本不兼容。
- Brixton版本基于Spring boot1.3.x構建,也可使用1.4.x進行測試,與1.2.x不兼容。
- Camden版本基于Spring boot1.4.x構建,也可使用1.5.x進行測試。
- Dalston版本基于Spring boot1.5.x構建,不兼容Spring boot2.0.x。
- Edgware版本基于Spring boot1.5.x構建,不兼容Spring boot2.0.x。
- Finchley版本基于Spring boot2.0.x構建,不兼容Spring boot 1.x 。
?
轉載于:https://www.cnblogs.com/fengyuduke/p/10537163.html
總結
以上是生活随笔為你收集整理的springcloud(一)-初识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: day 0314函数的进阶
- 下一篇: 字符串反序,逆序输出字符串