Spring Cloud架構學習筆記

Spring Cloud的需求目標

    微服務架構風格本質上是分佈式系統,爲了迎合這一潮流,Spring Cloud提供了一些分佈式系統常用的開發工具(或模式),使開發者可以方便的把這些模式應用於自己的微服務系統。Spring Cloud提供支持的微服務的模式包括:

  • 開發模式:配置管理;異步消息
  • 路由模式:服務註冊發現;服務路由
  • 客戶端彈性模式:客戶端負載均衡;斷路器(Circuit breaker)、隔離(Bulkhead)、應急(Fallback)模式
  • 日誌模式:日誌關聯
  • 安全模式:認證、權限、憑證管理和傳播

    還有一些常見的微服務模式,可以從其它軟件或者框架獲得支持:

  • 日誌聚合模式:ELK軟件棧
  • 調用鏈分析:Zipkin
  • 服務監控:Prometheus,Zabbix
  • 持續集成:Jenkins, Travis CI
  • 基礎架構即代碼:Docker, Kubernetes

Spring Cloud架構總覽

    上圖是一個使用了Spring Cloud的微服務架構,Spring Cloud的主要組件包括:

  • Spring Cloud Config:支持分佈式系統中統一配置管理。
  • Spring Cloud Netflix:通過自動配置、綁定到Spring環境和其它的Spring 編程模式,提供了Spring Boot應用和Netflix開源軟件(OSS)的集成。使用一些簡單的註解,即可快速地在你的應用裏添加經過戰鬥考驗的Netflix組件,以支持微服務中的通用模式:服務註冊發現(Eureka),斷路器、隔離、應急(Hystrix),服務路由(Zuul),客戶端負載均衡(Ribbon)。
  • Spring Cloud Stream:支持在微服務中輕鬆繼承輕量級的消息處理,如RabbitMQ,Kafka。
  • Spring Cloud Sleuth:提供了分佈式日誌關聯解決方案。
  • Spirng Cloud Security:基於Spring Boot和Spring OAuth2提供的微服務安全方案,支持快速實現單點登錄(Single Sign On),令牌互換(Token Exchange)等常用的安全模式。

    使用以上的組件即可滿足常見的微服務需求,此外,Spring Cloud還提供了以下組件:

  • Spring Cloud Bus:支持連接微服務結點到輕量級消息代理(Message Broker),然後可用於廣播狀態變化(如配置變化)或其它的管理指令。
  • Spring Cloud Consul:提供Spring Boot應用和Consul的集成。可以提供服務註冊發現,統一配置管理模式,作爲Eureka和Spring Cloud Config的替代。
  • Spring Cloud Zookeeper:提供Spring Boot應用和Zookeeper的集成。可以提供服務註冊發現,統一配置管理模式,作爲Eureka和Spring Cloud Config的替代。
  • Spring Cloud Contract:爲Spring應用提供消費者驅動契約(Consumer Driven Contract)和服務Schema的支持。
  • Spring Cloud Vault:提供Spring Boot應用和HashiCorp Vault的集成。Vault爲密碼,app secret等祕密信息提供了安全的存取方案。

參考資料

1. Spring Microservices in Action

2. http://cloud.spring.io/spring-cloud-static/Edgware.SR3/single/spring-cloud.html

3. https://dzone.com/articles/microservice-architecture-with-spring-cloud-and-do

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章