【Spring Cloud(一)】微服務架構體系及組件介紹


一、微服務架構

1、微服務架構簡介

  1.1、分布式:不同的功能模塊部署在不同的服務器上,減輕網站高並發帶來的壓力。

  1.2、集群:多台服務器上部署相同應用構成一個集群,通過負載均衡共同向外提供服務。

  1.3、微服務:微服務架構模式就是將web應用拆分為一系列小的服務模塊,這些模塊可以獨立地編譯、部署,並通過各自暴露的API接口通訊,共同組成一個web應用。

  1.4、SpringCloud是基於SpringBoot的一整套微服務框架,提供了一系列可配置的組件,如配置管理服務發現負載均衡熔斷器斷路器智能路由微代理控制總線全局鎖決策競選分布式會話集群狀態管理等。

2、微服務的特點

  • 單一職責:每一個服務模塊都對應單一的業務實現
  • 微:服務拆分的顆粒度很小
  • 面向服務:每個服務對外僅暴露服務接口API即可,不關心服務的技術實現,與技術、語言和平台無關
  • 自治:服務間互相獨立、互不干擾
    • 團隊獨立
    • 技術獨立:提供Rest接口,面向服務即可
    • 前后端分離
    • 數據庫分離:每個服務使用自己的數據源
    • 部署獨立:每個服務都是獨立的組件,可復用,可替換,降低服務間的耦合

3、三者的關系

微服務是一種結構理念,設計原則,提供理論指導;

Spring Boot專注於快速、方便集成的單個微服務個體,可以基於Spring Boot快速開發單個微服務;

Spring Cloud是一個基於Spring Boot實現的服務工具治理包,專注於全局的服務治理框架。

二、Spring Cloud

1、Spring Cloud組件架構

 

上圖中各組件的組件和運行流程如下:

    • 所有請求都通過API網關來訪問內部服務;
    • 網關接受請求后,從注冊中心獲取可用服務模塊;
    • 由Ribbon進行負載均衡后,分發到后台的具體實例;
    • 各個服務模塊之間通過Feign進行通信處理業務;
    • Hystrix負責處理服務超時熔斷;
    • Turbine監控服務間的調用和熔斷相關指標。

再來看一個具體實例上的Spring Cloud服務流程:

2、Spring Cloud組件簡介

2.1、主要組件簡介

  • Eureka,服務注冊中心
  • Zuul,API服務網關
  • Config,分布式配置中心,支持本地倉庫、SVN、Git、Jar包內配置等模式
  • Dashboard,Hystrix儀表盤,監控集群模式和單點模式,其中集群模式需要收集器Turbine配合
  • Ribbon,客戶端負載均衡
  • Feign,聲明式服務調用
  • Bus,消息總線

2.2、組件主要功能

Eureka和Ribbon,一個注冊服務,一個消費服務。

  Hystrix,為了優化Ribbon,防止整個微服務架構因為某個服務節點的問題導致崩潰,起到保險絲的作用。

Dashboard,給Hystrix統計和展示用,而且監控服務節點的整體壓力和健康情況。

  Turbine,集群收集器,服務於Dashboard。

Zuul,加在整個微服務最前沿的防火牆和代理器,隱藏微服務結點IP端口信息,加強安全保護。

Config,為了解決所有微服務各自維護各自的配置,設置一個統一的配置中心,方便修改配置。

  Bus是因為config修改完配置后各個結點都要refresh才能生效實在太麻煩,所以交給bus來通知服務節點刷新配置的。

3、SpringCloud全家桶

  1. 首先為了提供微服務之間的發現和注冊,需要服務注冊中心提供注冊與發現功能,采用Eureka組件
  2. 消費者從注冊中心拿到服務提供者的注冊地址信息列表,為了從中選擇一個提供方,避免流量集中在某台機,需要客戶端負載均衡組件Ribbon
  3. 消費者得到具體提供方的地址信息后,發起遠程調用,通過聲明式調用組件Feign,將遠程RestFul調用封裝成接口調用。
  4. 在微服務架構中,為了避免某個服務掛掉后引起服務雪崩,以及做到服務端失敗后快速響應,提供了服務熔斷以及降級機制Hystrix組件
  5. 為了對外屏蔽內部服務調用細節,在最前沿加入網關組件,提供流量控制、身份鑒別、負載均衡等安全防護功能,采用API網關Zuul組件
  6. 隨着系統訪問量的增加,為避免單點的注冊中心成為系統性能瓶頸,注冊中心采用Eureka集群方式部署。
  7. 隨着系統擴大,Eureka集群的部署以及服務模塊的增多,每個模塊維護各自的配置信息,復雜且容易出錯,引入配置中心SpringCloud Config組件,提供統一的配置信息管理。
  8. 為了避免每次配置信息的變更都需要重啟服務才能生效,引入消息總線Bus組件,提供無需重啟、實時刷新配置信息等功能。

 


免責聲明!

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



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