天天看點

07-微服務網關(API網關)

微服務網關(API網關)

什麼是微服務網關

API網關是一個伺服器,是系統對外的唯一入口。API網關封裝了系統内部架構,為每個用戶端提供一個定制的API。API網關方式的核心要點是,所有的用戶端和消費端都通過統一的網關接入微服務,在網關層處理所有的非業務功能。通常,網關也是提供REST/HTTP的通路API。服務端通過API-GW注冊和管理服務。

作用和應用場景

網關具有的職責,如身份驗證、監控、負載均衡、緩存、請求分片與管理、靜态響應處理。當然,最主要的職責還是與“外界聯系”。

常見的API網關實作方式

  • Kong

    基于Nginx+Lua開發,性能高,穩定,有多個可用的插件(限流、鑒權等等)可以開箱即用。問題:隻支援Http協定;二次開發,自由擴充困難;提供管理API,缺乏更易用的管控、配置方式。

  • Zuul

    Netflix開源,功能豐富,使用JAVA開發,易于二次開發;需要運作在web容器中,如Tomcat。

    • 問題:
      • 缺乏管控,無法動态配置;
      • 依賴元件較多;
      • 處理Http請求依賴的是Web容器,
      • 性能不如Nginx;
  • Traefik

    Go語言開發;輕量易用;提供大多數的功能:服務路由,負載均衡等等;提供WebUI問題:二進制檔案部署,二次開發難度大;UI更多的是監控,缺乏配置、管理能力;

  • Spring Cloud Gateway

    SpringCloud提供的網關服務

  • Nginx+lua實作

    使用Nginx的反向代理和負載均衡可實作對api伺服器的負載均衡及高可用

Nginx方式搭建

location /api-order {
	proxy_pass http://127.0.0.1:9001/;
}
location /api-product {
	proxy_pass http://127.0.0.1:9002/;
}
           

繼續閱讀