一般來説,API網關有四大職能:

  • 請求接入:作為所有API接口服務請求的接入點,管理所有的接入請求
  • 業務聚合:作為所有後端業務服務的聚合點,所有業務服務都可以在這裏被調用
  • 中介策略:實現安全、驗證、路由、過濾、流控、緩存等策略,進行一些必要的中介處理
  • 統一管理:提供配置管理工具,對所有API服務的調用生命週期和相應的中介策略進行統一管理

  如果對上述目標進入更深入的思考,則可以分為流量網關和業務網關。

開源網關對比

 

SpringCloudGateway

Zuul2

OpenResty

Kong

限流

可以通過IP、用户、集羣限流,提供了相應的接口進行擴展

可以通過配置文件配置集羣限流和單服務器限流,也可以通過Filter實現限流擴展

需要Lua開發

根據秒、分、時、天、月、年,根據用户進行限流。可以二次開發

鑑權

普通鑑權、OAuth2.0

Filter中實現

需要Lua開發

普通鑑權、Key Auth鑑權、HMAC、Oauth2.0

監控

Gateway Metrics Filter

Filter中實現

需要開發

可上報datadog,請求數據量、應答數據量、接收和發送的時間間隔、狀態碼數量、Kong內運行時間

易用性

簡單易用

參考資料較少

簡單易用,但是需要Lua開發

簡單易用,API轉發通過管理員接口配置,開發需要Lua腳本

可維護性

擴展性強、易配置

可維護性較差

可維護性較差,將來維護需要大量Lua腳本

可維護性較差,將來維護需要大量Lua腳本

成熟度

社區成熟,但是Gateway資源較少

資料較少

成熟,資料多

相對成熟,插件開源