Spring Cloud為開發人員提供了一整套的快速構建分布式應用的工具,入服務注冊、服務發現、熔斷、負載均衡、路由等,提供了開箱即用的各種依賴以及良好的可擴展機制。
目前在Spring Cloud的中文官網中列出了很多優質項目:
Spring Cloud沒有重復的制造輪子,它吸取了很多家公司的優秀項目框架,通過Spring Boot的快速整合,屏蔽了復雜的配置,方便開發者快速構建自己需要的服務。
目前Spring Cloud為我們可以提供以下服務:
下面我們介紹幾個常用的Spring Cloud下的服務組件。
1. Eureka
Netfilix公司出品(大佬為Spring Cloud生態提供了很多服務治理的組件)。
服務發現是微服務架構的原則之一,用於定位你在本地可提供的服務。Eureka是一個基於REST的雲端服務發現的應用,當客戶端注冊Eureka服務時,提供了一系列自身的元數據,入主機、健康指示符URL等參數,Eureka服務器接收心跳消息維持這種服務。
2. Hystrix
熔斷器,容錯管理工具,旨在通過熔斷機制控制服務和第三方庫的節點,從而對延遲和故障提供更強大的容錯能力。
加入你目前的軟件架構如下:
當ServiceB出現服務故障,並達到一定的閾值(Hystrix的默認是5秒內出現20次故障),則出現熔斷機制,啟用回退機制:
fallback機制可以是啟動替代服務,也可以是讓該服務下線。
3. Spring Cloud Config
配置中心,可以把配置放到遠程服務器,進行集中化管理分布式環境下的配置,支持Git和SVN。
4. Spring Cloud Bus
事件、消息總線,用於在集群(例如,配置變化事件)中傳播狀態變化,可與Spring Cloud Config聯合實現熱部署。
5. Spring Cloud Zookeeper
Spring Boot抱緊ZK的大腿。
6. 和Spring Boot的關系
Spring Boot是快速開發Spring應用的腳手架,Spring Cloud是一個基礎Spring Boot實現的雲應用開發工具集合。
7. 結尾語
Spring Cloud特別適合中小型公司,因為它們往往沒有足夠的財力開發各種基礎設施,而Spring Could提供了一站式解決方案,大大減少了開發成本。對於大公司,Spring Could也方便構建核心系統之外的微服務,甚至抽絲剝繭般地對原來的巨型核心系統解耦。因此筆者相信Spring Cloud可成為下一代服務端框架的重要選擇。