Spring Cloud學習(一)


Spring Cloud是什么?

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分布式系統基礎設施的開發,如服務發現注冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,都可以用Spring Boot的開發風格做到一鍵啟動和部署。Spring並沒有重復制造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過Spring Boot風格進行再封裝屏蔽掉了復雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分布式系統開發工具包。

Spring Cloud 與 微服務

微服務的概念起源於: http://www.cnblogs.com/liuning8023/p/4493156.html(英文: https://martinfowler.com/articles/microservices.html)

微服務架構模式的目的是將大型的,復雜的,長期運行的應用程序構建為一組相互配合的服務,每個服務都可以很容易進行局部改良.微服務的意思是每個服務應該足夠小,小是指業務邏輯上的小.微服務的形象表示:

micro

  • X軸: 水平擴展, 即在負載均衡服務器后增加多個運行實例
  • Z軸: 數據庫的擴展, 即分庫分表
  • Y軸: 功能分解, 即將不同職能的模塊划分成不同的服務

Spring Cloud技術概覽

Spring Cloud

主要是下面內容:

  • 服務治理
  • 分布式鏈路監控
  • 消息組件
  • 配置中心
  • 安全控制
  • 命令行工具
  • 集群工具

每個模塊又是由不同組件結合來解決,其實學習Spring Cloud就是學會Spring Boot整合這些組件,學會使用,深入理解就好.

Eureka

Eureka是Netflix開源的一款提供服務注冊和發現的產品,提供了完整的Service Registry 和 Service Discovery實現, 是Spring Cloud體系中最重要最核心的組件之一. Eureka相當於圖書館管理員,添加書需要到我這說一下,取書也得到我這報備.所以說Eureka在生產環境中一般是集群,至少兩個,否則Eureka一旦掛掉將會影響整個服務.

Eureka就自動具有注冊中心,負載均衡,故障轉移的功能.

Hystrix

熔斷器,容錯管理工具,旨在通過熔斷機制控制服務和第三方節點,從而對延遲和故障提供更強大的容錯能力.也就是微服務中多個服務層調用,基礎服務的故障可能會導致級聯故障,造成整個系統不可用,就是服務血崩效應,Hystrix就是在這種場景下來做故障隔離,Hystrix 會在某個服務連續調用 N 次不響應的情況下,立即通知調用端調用失敗,避免調用端持續等待而影響了整體服務。Hystrix 間隔時間會再次檢查此服務,如果服務恢復將繼續提供服務。

服務雪崩效應是一種因"服務提供者"不可用導致"服務消費者"的不可用,並且將不可用逐漸放大的過程.

zuul

zuul路由也是微服務架構不可或缺的一部分,提供動態路由,監控,彈性,安全等的邊緣服務.具體作用就是服務轉發,接受並轉發所有內外部的客戶端調用,使用 Zuul 可以作為資源的統一訪問入口. zuul相當於門衛,對請求進行一些校驗等.

Spring Cloud Config

配置中心,把配置文件放在遠程服務器,集中化管理集群配置,支持本地存儲,git以及svn.

這個組件是解決分布式系統的配置管理方案,包含了client和server兩個部分,Server 提供配置文件的存儲、以接口的形式將配置文件的內容提供出去,Client 通過接口獲取數據、並依據此數據初始化自己的應用。

當所有配置存儲在配置中心時,配置中心也成為一個很重要的組件,所以一般也建議做集群,支持配置中心高可用.

Spring Cloud Bus

事件,消息總線,用於在集群中傳播狀態變化,可與Spring Cloud Config聯合支持熱部署,也就是改變配置文件提交到版本庫時,會自動觸發對應實例的Refresh.

Spring Cloud Sleuth

日志收集工具包,封裝了Dapper和log-based追蹤以及Zipkin和HTrace操作,為SpringCloud應用實現了一種分布式追蹤解決方案。

還有更多的組件,使用的時候再說.


組件的配套使用

組件

  • Eureka負責服務的注冊和發現,很好將各個服務連接起來
  • Hystrix負責監控服務之間的調用情況,連續多次失敗進行熔斷保護
  • Hystrix dashboard,Turvine負責監控Hystrix的熔斷情況,給予圖形化展示(可以理解為圖形化工具)
  • Spring Cloud Config提供統一的配置中心服務
  • 配置文件發生改變時,Spring Cloud Bus負責通知各個服務去獲取最新的配置信息(實現熱部署)
  • 所有對外的請求和服務都通過zuul進行轉到,起到API網關的作用
  • sleuth + Zipkin將所有請求數據記錄下來,方便進行后續分析.

參考:純潔的微笑(http://www.ityouknow.com/springcloud/2017/05/01/simple-springcloud.html) 和 Wind MT(https://windmt.com/2018/04/14/spring-cloud-0-microservices/)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM