Spring Cloud是壹系列框架的有序集合(框架集),他利用Spring Boot的開發便利性巧妙的簡化了分布式系統基礎設施的開發,如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控等。
SpringCloud利用SpringBoot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,SpringCloud為開發人員提供了快速構建分布式系統的壹些工具,包括配置管理、服務發現、斷路器、路由、微代理、事件總線、全局鎖、決策競選、分布式會話等等,它們都可以用SpringBoot的開發風格做到壹鍵啟動和部署。
SpringCloud並沒有重復制造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過SpringBoot風格進行再封裝屏蔽掉了復雜的配置和實現原理,最終給開發者留出了壹套簡單易懂、易部署和易維護的分布式系統開發工具包
下面是Spring Cloud的整體架構圖:
註冊中心可以說是微服務架構中的“通訊錄”,他記錄了服務和服務地址的映射關系。在分布式架構中,服務會註冊到這裏,當服務需要調用其他服務時,就在這裏找到對應服務的地址,進行調用。
註冊中心的主要作用
Ribbon是Netflix發布的壹個負載均衡,有助於控制HTTP和TCP客戶端行為。在Spring Cloud中,Eureka壹般配合Ribbon進行使用,Ribbon提供了客戶端負載均衡的功能,Ribbon利用從Eureka中讀取到的服務信息,在調用服務節點提供的服務時,會合理的進行負載。
在Spring Cloud中可以將註冊中心和Ribbon配合使用,Ribbon自動的從註冊中心中獲取服務提供者的列表信息,並基於內置的負載均衡算法,請求服務。
Ribbon原理
幾種負載均衡策略:
Hystrix是Netflix開源的壹款容錯框架,包含常用的容錯方法。在高並發訪問下,系統所依賴的服務的穩定性對系統的影響非常大,依賴有很多不可控的因素,比如網絡連接變慢,資源突然繁忙,暫時不可用,服務脫機等。Hystrix利用熔斷、線程池隔離、信號量隔離、降級回退等方法來處理依賴隔離,使系統變得高可用。
Hystrix主要提供了以下幾種容錯方法:
Spring Cloud Gateway是Spring官方推出的服務網關的實現框架,相對於服務網關的概念有點類似於傳統的反向代理服務器(如nginx),但反向代理壹般都只是做業務無關的轉發請求,而服務網關與服務的整合程度更高,可以看作也是整個服務體系的組成部分,通過過濾器等組件可以在網關中集成壹些業務處理的操作(比如權限認證等)。
核心功能:
Spring Cloud Stream是壹個用來為微服務應用構建消息驅動能力的框架。
特點:
屏蔽底層 MQ 實現細節,Spring Cloud Stream 的 API 是統壹的。如果從 Kafka 切到 RocketMQ,可以直接修改配置。
與 Spring 生態整合更加方便。Spring Cloud Data Flow的流計算都是基於 Spring Cloud Stream;Spring Cloud Bus 消息總線內部也是用的 Spring Cloud Stream。
配置中心功能:
分布式鏈路追蹤,就是將壹次分布式請求還原成調用鏈路,進行日誌記錄,性能監控並將壹次分布式請求的調用情況集中展示。比如各個服務節點上的耗時,請求具體到達哪臺機器上、每個服務節點的請求狀態等等。
分布式鏈路追蹤方案: