SpringCloud微服務網關Zuul

爲什麼需要微服務網關

  • 不同的微服務一般有不同的網絡地址,而外部的客戶端可能需要調用多個服務的接口才能完成一個業務需求。比如一個電影購票的手機APP,可能回調用電影分類微服務,用戶微服務,支付微服務等。如果客戶端直接和微服務進行通信,會存在以下問題:
  1. 客戶端會多次請求不同微服務,增加客戶端的複雜性
  2. 存在跨域請求,在一定場景下處理相對複雜
  3. 認證複雜,每一個服務都需要獨立認證
  4. 難以重構,隨着項目迭代,可能需要重新劃分微服務,如果客戶端直接和微服務通信,那麼重構會難以實施
  5. 某些微服務可能使用了其他協議,直接訪問有一定困難
  • 上述問題,都可以藉助微服務網關解決。微服務網關是介於客戶端和服務器之間的中間層,所有的外部請求都會先經過微服務網關。

 

什麼是Zuul

  • Zuul 是Netflix 開源的微服務網關,他可以和Eureka,Ribbon ,Hystrix 等組件配合使用。Zuul組件的核心式一系列的過濾器,這些過濾器可以完成以下功能:
  1. 身份認證和安全:識別每一個資源的驗證要求,並拒絕那些不符合的請求
  2. 審查與監控
  3. 動態路由:動態將請求路由到不同後端集羣
  4. 壓力測試: 逐漸增加指向集羣的流量,以瞭解性能
  5. 負載分配: 爲每一種負載類型分配對應容量,並棄用潮吹限定值得請求
  6. 靜態響應處理: 邊緣位置進行響應,賓冕轉發到內部集羣
  7. 多區域彈性: 跨域AWS Region進行請求路由,旨在實現 ELB(ElasticLoad Balancing)使用多樣化
  • SpringCloud對 Zuul 進行了整合和增強

 

使用Zuul 後,架構圖演變爲一下形式

 

                    

 

 

集中配置組件 SpringCloudConfig

SpringCloudConfig簡介

  • 在分佈式系統中,由於服務數量巨多,爲了方便服務配置文件統一管理,實時更新,所以需要分佈式配置中心組件。在spring Cloud中,有分佈式配置中心組件SpringCloudConfig,它支持配置服務放在配置服務的內存中(即本地),也支持放在遠程Git倉庫中,在springCloudConfig組件中,分倆個角色,一個是ConfigServer 二是ConfigClient。
  • ConfigServer 是一個可橫向擴展,集中式的配置服務器,它用於管理應用程序各個環境下的配置,默認使用Git存儲配置文件內容,也可以使用SVN存儲,或者是本地文件存儲。
  • ConfigClient 是ConfigServer的客戶端,用於操作存儲在ConfigServer中的配置內容。微服務在啓動時會請求ConfigServer獲取配置文件的內容,請求到後再啓動容器。

詳情請看官方文檔:https://www.springcloud.cc/spring-cloud-config.html

 

 

 

 

 

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