開源API網關,你選對了麼?

開源API網關,你選對了麼?

api網關的本質

不用扯那麼多,也不用畫圖,一句話說清楚
api網關:流量總入口,得以集中控制!
就這麼簡單html

api網關協議上最基本要支持HTTP 和 WebSocket,功能強大點的更會支持tcp/udp的負載均衡接入
正由於支持的是http協議,因此api網關不單單能夠做爲 RESTful API 接入,接入帶頁面的web均可以的,徹底能夠當成一個web負載均衡器使用java

api網關的做用

解決:認證、鑑權、安全、流量管控、緩存、服務路由,協議轉換、服務編排、熔斷、灰度發佈、監控報警等問題
本質上,流量從我過,我就能夠作想作的控制,上面列的就是我須要的控制
有了api網關纔不至於裸奔,纔不至於在業務層「重複建設」,纔不至於在業務層去用redis+lua實現「親,你訪問過於頻繁,請稍後再試」,這個事交給api網關就成golang

api網關比較

開源api網關大全

以前流水理魚把市面上開源的api網關整理了個大全 「開源API網關大全20款+」 https://www.iamle.com/archive... ,大部分都加入了CNCFweb

如下api網關3Scale、Ambassador、APISIX、Express Gateway、Gloo、Kong、KrakenD、Mia-Platform、MuleSoft、Reactive Interaction Gateway、Sentinel、Tyk、WSO2 API Microgateway
加入了CNCFredis

開源api網關技術棧狀況

api網關技術棧,老一派的使用java,新派的使用golang、openresty+lua
小衆Node.js、.net、C++ 技術棧雖然不同,達到的目的倒是同樣的。
用靜態語言編寫api網關是有弊端的
使用靜態語言編寫的api網關都會有插件編寫不方便的問題
使用java編寫的老牌網關性能差,歷史包袱重
openresty+lua也許是最佳的api網關、waf、web防火牆解決方案
依託於openresty平臺具有超高性能,又依託於lua得到了動態性
CloudFlare也是春哥當年用openresty+lua技術棧作的引擎express

咱們從不一樣的技術棧來作個api網關分類
openresty+lua開源api網關
表明有Kong、APISIX、3scale、、API Umbrellasegmentfault

Kong不用作太多介紹,應該是開源裏面最熱的一個api網關了,相對龐大複雜
APISIX,輕巧+極致性能+熱插件,值得一提到是插件中有個serverless的支持,簡單說就是寫一段自定義lua腳本,掛載到openresty任意階段執行!api

golang開源api網關
表明有Tky、Manba、GOKU API Gateway、Ambassador(基於Envoy)、Gloo(基於Envoy)、KrakenD、BFE緩存

java開源api網關
表明有Gravitee、Zuul、Sentinel、MuleSoft、WSO二、Soul安全

Erlang開源api網關
表明有RIG – Reactive Interaction Gateway

.net開源api網關
表明有Ocelot

Node.js開源api網關
表明有express-gateway

閉源商業api網關

從gartner(艾瑞諮詢相似)的權威報告能夠找到老牌的api網關玩家是誰
行業老大:Apigee、3Scale、Amazon等
各大雲都是玩家,好比阿里雲api網關、騰訊雲api網關、Amazon API Gateway
國內還有幾家也在作商業api網關,具體搜索下就能找到

總結下api網關選型建議

  • 前提知足功能需求
  • 不在意商業閉源綁定,不想麻煩,選你最容易獲取的商業api網關例如雲平臺賣的商業網關
  • 國內用戶選 apisix 爲表明的openresty+lua技術棧api網關,能夠獲得中文羣組支持
  • 但願國際化的選 kong 爲表明的openresty+lua技術棧api網關
  • 有大量的某語言開發人員,能夠選基於這個技術棧的api網關,例如java選Gravitee,golang選tyk、Manba
流水理魚 發佈!
相關文章
相關標籤/搜索