1. 程式人生 > 其它 >Jmeter(四十二) - 從入門到精通進階篇 - Jmeter配置檔案的刨根問底 -番外篇(詳解教程) Jmeter(四十二) - 從入門到精通進階篇 - Jmeter配置檔案的刨根問底 -番外篇(詳解教程)

Jmeter(四十二) - 從入門到精通進階篇 - Jmeter配置檔案的刨根問底 -番外篇(詳解教程) Jmeter(四十二) - 從入門到精通進階篇 - Jmeter配置檔案的刨根問底 -番外篇(詳解教程)

1、微服務閘道器的基本介紹

不同的微服務一般會有不同的網路地址,客戶端在訪問這些微服務時必須記住幾十甚至幾百個地址,這對於客戶端方來說太複雜也難以維護,如果讓客戶端直接與各個微服務通訊,可能會有很多問題:

  1. 客戶端會請求多個不同的服務,需要維護不同的請求地址,增加開發難度
  2. 在某些場景下存在跨域請求的問題
  3. 加大身份認證的難度,每個微服務需要獨立認證

因此,我們需要一個微服務閘道器,介於客戶端與伺服器之間的中間層,所有的外部請求都會先經過微服務閘道器。客戶端只需要與閘道器互動,只知道一個閘道器地址即可。

閘道器是介於客戶端和伺服器端之間的中間層,所有的外部請求都會先經過閘道器這一層。也就是說,API 的實現方更多地只需要考慮業務邏輯,而安全、效能、監控可以交由閘道器來完成,這樣既提高業務靈活性又不缺安全性。

微服務閘道器是一個伺服器,是系統對外的唯一入口。閘道器封裝了系統內部架構,為外部客戶端提供一個定製的 API。API 閘道器方式的核心要點是,所有的客戶端和消費端都通過統一的閘道器接入微服務,在閘道器層處理所有的非業務功能。通常,閘道器也是提供REST/HTTP 的訪問 API。服務端通過 API-GW 註冊和管理服務。

1.1、使用微服務閘道器的優點

閘道器具有的職責,如身份驗證、監控、負載均衡、快取、請求分片與管理、靜態響應處理。當然,最主要的職責還是與“外界聯絡”。

使用閘道器的優點:

  1. 安全 。只有網關係統對外進行暴露,微服務可以隱藏在內網,通過防火牆保護。
  2. 易於監控。可以在閘道器收集監控資料並將其推送到外部系統進行分析。
  3. 易於認證。可以在閘道器上進行認證,然後再將請求轉發到後端的微服務,而無須在每個微服務中進行認證。
  4. 減少了客戶端與各個微服務之間的互動次數。
  5. 易於統一授權。

微服務閘道器就是一個系統,通過暴露該微服務網關係統,方便我們進行相關的鑑權,安全控制,日誌統一處理,易於監控的相關功能。

1.2、常見的閘道器實現方式

常見的實現微服務閘道器的技術有以下:

  1. Nginx。 使用Nginx的反向代理和負載均衡可實現對api伺服器的負載均衡及高可用。
  2. zuul。Zuul 是 Netflix 出品的一個基於 JVM 路由和服務端的負載均衡器。Netflix開源,功能豐富,使用JAVA開發,易於二次開發;需要執行在web容器中,如Tomcat。但是缺乏管控,無法動態配置;依賴元件較多;處理Http請求依賴的是Web容器,效能不如Nginx;
  3. spring cloud gateway。gateway 是spring 出品的 基於spring 的閘道器專案,整合斷路器,路徑重寫,效能比Zuul好。