首先要知道的是Spring Cloud是微服務架構。
微服務架構是一種架構模式,它將單一的應用程序劃分成一組很小的服務,服務之間相互協調、互相配合。每個服務都運行在獨立的進程中,服務與服務間採用輕量級通信機制(通常是HTTP協議的RESTful API)。每個服務都有着自己的業務,並且能夠被獨立的部署到生產環境、類生產環境等,對於具體的一個服務而言,應該根據上下文,選擇合適的語言、工具對其進行構建。
Spring Cloud中是一種微服務架構,項目案例:www.1b23.com,其中包含如下功能:
服務註冊與發現、服務調用、服務熔斷、負載均衡、服務降級、服務消息隊列、配置中心管理、服務網關、服務監控、全鏈路追蹤、自動化構建部署、服務定時任務。
但是在項目中一般只會用到如下幾種:
服務註冊與發現:EUREKA
服務負載與調用:NETFLIX OSS RIBBON、NETFLIX FEIGN
服務熔斷降級:HYSTRIX
服務網關:NETFLIX Zuul
服務器分佈式配置:Spring Coloud Config
服務開發:Spring Boot
下面來看下官方解析
Cloud
分佈式系統的開發與一般的系統來說是具有挑戰性的。服務之間的交流更爲密切,Cloud把項目的工作重點由應用層移到了網絡層。代碼想要連接到Cloud服務需要12個因素,如配置文件,狀態,日誌,連接到後端的服務。Spring Cloud提供了這些成套的服務使得開發者的程序服務能夠在雲上跑起來。
Spring Cloud architecture
Service discovery
在cloud,應用只會知道除了本地服務,不會知道其他主機上的服務。然而Netflix Eureka和或HashiCorp Consul可以人本地服務知道其他主機上服務的問題,Spring Boot提供了DiscoveryClient實現用於Eureka、Consul、Zookeeper、Kubernetes系統註冊方面的服務。
API gateway
Cloud上的服務都依賴與API gateway維護其安全,服務隱藏,調節負載等作用
Cloud configuration
cloud中,配置文件往往是在一套環境中或者系統中或者幾個應用中使用,而不是單獨在一個應用中使用,Spring Cloud Config就是用於提供這些幫助的。
Tracing
分佈式應用程序的調試比較複雜,定爲故障需要幾個獨立的服務一起運行定位。Spring Cloud Sleuth可以測試應用程序。