Spring Cloud學習(一)

Spring Cloud是什麼?

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

Spring Cloud 與 微服務

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

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

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 間隔時間會再次檢查此服務,若是服務恢復將繼續提供服務。app

服務雪崩效應是一種因"服務提供者"不可用致使"服務消費者"的不可用,而且將不可用逐漸放大的過程.負載均衡

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/)

相關文章
相關標籤/搜索