Spring Cloud是一個基於Spring boot實現的微服務架構開發工具。它爲微服務架構中涉及的配置管理、服務治理、斷路器、智能路由、微代理、控制總線、全局鎖、決策競選、分佈式會話和集羣狀態管理等提供了一種簡單的開發方式(摘自【Spring Cloud 微服務實戰】)。算法
Spring Cloud包含了多個子項目(能夠到中文官網查看:https://springcloud.cc),下面咱們就一一的來學習下每一個項目的用途:spring
- Spring Cloud Config: 配置管理工具,也就是分佈式的配置中心。支持使用Git存儲配置文件,它實現了應用配置的外部存儲化。服務上線運營後,若是須要調整服務的配置,要是把服務停了而後從新部署,顯着有些低效,而且若是節點過多(像阿里這種變態公司,某個服務可能上千個節點),那就是沒法承受的方法。配置中心就是來幫忙解決這個問題的。
- Netflix Eureka:服務治理組件,也就是負責服務註冊和服務發現機制的實現。
- Netflix Hystrix:容錯管理組件,實現斷路器模式,幫助服務依賴中出現的延遲和爲故障提供強大的容錯能力。
- Netflix Ribbon:客戶端負載均衡的服務調用組件,注意它是在客戶端實現負載均衡的,原理就是將服務列表存儲在客戶端,依次循環調用來實現
- Netflix Feign:基於Ribbon和Hystrix的聲明式服務調用組件
- Netflix Zuul:網關組件,提供智能路由、訪問過濾等功能
- Netflix Archaius: 外部化配置組件
- Spring Cloud Bus:事件、消息總線,用於傳播集羣中的狀態變化或事件,以觸發後續的處理
- Spring Cloud Cluster:針對ZooKeeper、Redis、Hazelcast、Consul的選舉算法和通用狀態模式的實現
- Spring Cloud for Cloud Foundry : 經過Oauth2協議綁定服務到CloudFoundry,CloudFoundry是VMware推出的開源PaaS雲平臺。
- Spring Cloud Consul : 封裝了Consul操做,consul是一個服務發現與配置工具,與Docker容器能夠無縫集成。
- Spring Cloud Stream:經過Redis、RabbitMQ或者kafka實現的消費微服務,能夠經過簡單的聲明式來發送和接收消息
- Spring Cloud AWS:用於簡化整合Amazon Web Service的組件
- Spring Cloud Security:安全工具包,提供在Zuul代理中對OAuth2客戶端請求的中繼器
- Spring Cloud Sleuth:Spring Cloud的分佈式跟蹤實現,能夠完美整合Zipkin
- Spring Cloud ZooKeeper:基於ZooKeeper的服務發現與配置管理組件
- Spring Cloud Starters: 基礎組件,他是基於Spring Boot風格iangmu的基礎依賴模塊
- Spring Cloud CLI: 基於 Spring Boot CLI,能夠讓你以命令行方式快速創建雲組件。
- Spring Cloud Task:提供雲端計劃任務管理、任務調度。