开源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
流水理鱼 发布!
相关文章
相关标签/搜索