spring cloud的百度介紹
spring cloud是一系列框架的有序集合,利用spring boot開發的便利簡化了分布式系統基礎設施的開發。包括服務發現(類似於dubbo的服務注冊中心和服務提供者)、配置中心(雲配置)、消息總線、負載均衡、斷路器、數據監控、服務網關、服務調用、數據流和批量任務。
spring cloud原理
springcloud是基於springboot實現的微服務架構開發工具,他為微服務中設計的配置管理、服務治理、斷路器、智能路由、微代、控制總線、全局鎖、決策精選、分布式會話和集群狀態管理等操作提供了一套簡單的開發方式。
spring cloud的主要成員介紹
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的次要成員
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,可以讓你以命令行方式快速建立雲組件。
