1. 程式人生 > >Spring Cloud(一):Spring Cloud簡述

Spring Cloud(一):Spring Cloud簡述

  要了解Spring Cloud,先要對“微服務”這個概念有一定的瞭解。微服務這個名詞最早是由面向物件設計與分析專家Martin Fowler提出,他對微服務的理解如下:

  簡而言之,微服務架構的風格,就是講單一程式開發成一個微服務,每個微服務執行在自己的程序當中,並使用輕量級機制通訊,通常是 HTTP RESTFUL API。這些服務圍繞業務能力來劃分構建的,並通過完全自動化部署機制來獨立部署。這些服務可以使用不同的程式語言,以及不同的資料儲存技術,以保證最低限度的集中式管理。

  那麼,對於微服務,可以總結如下:

  1. 按業務劃分為一個獨立執行的程式,即服務單元。
  2. 服務之間通過HTTP協議相互通訊。
  3. 自動化部署。
  4. 可以用不同的程式語言
  5. 可以用不同的儲存技術
  6. 服務集中化管理
  7. 微服務是一個分散式系統

  Spring Cloud 是基於Spring Boot的,繼承了Spring Boot的一些優點,約定大於配置。Spring Cloud的首要目標就是通過一系列開發元件和框架,幫助開發者快速搭建一個微服務系統。Spring Cloud是通過包裝其它技術框架來實現的,例如包裝開源的Netflix OSS元件,實現了一套通過註解,Java配置和基於模板開發的微服務框架。Spring Cloud提供了開發分散式微服務系統的一些常用元件,例如服務註冊和發現,配置中心,熔斷器,智慧路由,微代理,控制匯流排,全域性鎖,分散式會話等等。

  常用元件:

     1.服務註冊和發現元件Eureka

             利用Eureka元件可以很輕鬆的實現服務的註冊和發現的功能,Eureka元件提供了服務的健康監測,以及友好頁面UI,另外,Spring Cloud也支援Consul和Zookeeper用於註冊和發現服務。

      2.熔斷元件Hystrix

              Hystrix是一個熔斷元件,除了基本的熔斷器功能外,還能夠實現服務降級,服務限流的功能。另外,Hystrix提供了熔斷器的健康監測,以及熔斷器健康資料的API介面。Hystrix Dashboard提供了單個服務熔斷器的健康狀態資料的介面展示功能,Hystrix Turbine提供了多個服務的熔斷器的健康狀態資料的介面展示功能。

      3.負載均衡元件Ribbon

              Ribbon是一個負載均衡元件,他通常和eureka,zuul,RestTemplate,Fegin配合使用。

      4.路由閘道器Zuul

              路由閘道器Zuul有智慧路由和過濾的功能,內部服務的API介面通過Zuul網關同一對外暴露,內部服務的API介面不直接暴露,防止了內部服務的敏感資訊對外暴露。

專案一覽表:

  1. Spring Cloud Config:服務配置中心,將所有的服務的配置檔案放到本地倉庫或者遠端倉庫。
  2. Spring Cloud Netflix:它是通過包裝Netflix公司的微服務元件實現的,也是Spring Cloud的核心元件,包括Eureka,Hystrix,Zuul,Archaius.
  3. Eureka:服務註冊和發現元件
  4. Hystrix:熔斷器元件
  5. Zuul:智慧路由閘道器元件
  6. Fegin:宣告式遠端排程元件
  7. Ribbon:負載均衡元件
  8. Archaius:配置管理API的元件
  9. Spring Cloud Bus:訊息匯流排元件
  10. Spring Cloud Sleuth:服務鏈路追蹤元件
  11. Spring Cloud Data Flow:大資料操作元件
  12. Spring Cloud Security:安全模組元件
  13. Spring Cloud Consul:該元件是Spring Cloud對Consul的封裝,和Eureka類似
  14. Spring Cloud Zookeeper:同上
  15. Spring Cloud Stream:資料流操作元件
  16. Spring Cloud CLI:該元件是對Spring Boot CLI的封裝,可以讓使用者通過命令列方式快速執行和搭建容器
  17. Spring Cloud Task:基於Spring Task,提供了任務排程和管理的功能
  18. Spring Cloud Connectors:用於Paas雲平臺連線到後端。