1. 程式人生 > >Spring Cloud 及其元件介紹

Spring Cloud 及其元件介紹

        Spring Cloud是一個基於Spring boot實現的微服務架構開發工具。它為微服務架構中涉及的配置管理、服務治理、斷路器、智慧路由、微代理、控制匯流排、全域性鎖、決策競選、分散式會話和叢集狀態管理等提供了一種簡單的開發方式(摘自【Spring Cloud 微服務實戰】)。

        Spring Cloud包含了多個子專案(可以到中文官網檢視:https://springcloud.cc),下面我們就一一的來學習下每個專案的用途:

  • 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:提供雲端計劃任務管理、任務排程