开源的API Gateway项目- Kong基于OpenResty(Nginx + Lua模块)

Kong 是一个在 Nginx 内运行的开源 API 网关和微服务抽象层。它是用于处理 API 流量的灵活、可扩展、可插入的工具。

Kong 提供了以下功能:

  1. 用户登录:Kong 提供了多种认证插件,像 JWT、OAuth 2.0 等,可以满足用户登录需求。
  2. Token 管理:使用上述认证插件,Kong 可以有效地管理和处理 Token。
  3. 流量计数:通过插件,例如"流量控制"插件,Kong 可以对 API 的流量做限制,并进行实时的统计。
  4. 除此之外,Kong 还提供了负载均衡、服务发现、健康检查、Kong 的集群和节点状态的相关功能。

你可以在官方网站下载并获取安装指南:Kong Gateway: Most Trusted Open Source API Gateway | Kong Inc.

Kong是一款基于OpenResty(Nginx + Lua模块)编写的高可用、易扩展的,由Mashape公司开源的API Gateway项目。Kong是基于NGINX和Apache Cassandra或PostgreSQL构建的,能提供易于使用的RESTful API来操作和配置API管理系统,所以它可以水平扩展多个Kong服务器,通过前置的负载均衡配置把请求均匀地分发到各个Server,来应对大批量的网络请求。 Kong是一个在 Nginx 中运行的Lua应用程序,并且可以通过lua-nginx模块实现,Kong不是用这个模块编译Nginx,而是 OpenResty 一起发布,OpenResty已经包含了 lua-nginx-module, OpenResty 不是 Nginx的分支,而是一组扩展其功能的模块。它的核心是实现数据库抽象,路由和插件管理,插件可以存在于单独的代码库中,并且可以在几行代码中注入到请求生命周期的任何位置。

Kong主要有三个组件:

  • Kong Server :基于nginx的服务器,用来接收API请求。
  • Apache Cassandra/PostgreSQL :用来存储操作数据。
  • Kong dashboard:官方推荐UI管理工具,当然,也可以使用 restfull 方式 管理admin api。

Kong的主要功能包括:

  • 高级路由、负载平衡、健康检查------所有这些都可以通过管理 API 或声明性配置进行配置。
  • 使用 JWT、基本身份验证、ACL 等方法对API 进行身份验证和授权。
  • 代理、SSL/TLS 终止以及对 L4 或 L7 流量的连接支持。
  • 用于实施流量控制、req/res转换、日志记录、监控和包括插件开发人员中心的插件。
  • 复杂的部署模型,如声明式无数据库部署和混合部署(控制平面/数据平面分离),没有任何供应商锁定。
  • 本机入口控制器支持服务Kubernetes。

插件提供了扩展网关使用的高级功能。许多 Kong Inc. 和社区开发的插件(如 AWS Lambda、Correlation ID 和 Response Transformer)都在插件中心展示。

官网: docs.konghq.com/

另外,要注意的是,虽然 Kong 本身是免费的,但是部分插件例如开发者门户、高级认证等只在企业版中提供,企业版是收费的。如果你需要这些功能,可能要考虑其它平台,或者探索其它开源工具来辅助实现。

在使用开源工具时,一定要考虑到一个重要的问题:你是否有资源和能力来维护和升级这些工具。一些开源工具可能需要一定水平的技术知识和时间投入来保证其功能性和安全性。对于商业用途,你也需要考虑这个工具是否可靠,并能否适应你的业务的发展和更改。

相关推荐
debug 小菜鸟1 天前
Python + Flask + API Gateway + Lambda + EKS 实战
python·flask·gateway
Li zlun2 天前
Kubernetes 进阶实战:CRD、Gateway API 与优先级调度
java·kubernetes·gateway
zzz.102 天前
k8s中的Gateway API 和istio
云原生·kubernetes·gateway·istio
疯狂的维修12 天前
关于Gateway configration studio软件配置网关
网络协议·c#·自动化·gateway
hadage23312 天前
--- 统一请求入口 Gateway ---
gateway
波波烤鸭14 天前
深入理解 Gateway 网关:原理、源码解析与最佳实践
java·spring·gateway
DO_Community14 天前
DigitalOcean Kubernetes 现已支持 Gateway API 托管服务
容器·kubernetes·gateway
T_Ghost14 天前
SpringCloud微服务网关Gateway
spring cloud·微服务·gateway
Rysxt_16 天前
Spring Boot Gateway 教程:从入门到精通
spring boot·网关·gateway
月夕·花晨16 天前
Gateway -网关
java·服务器·分布式·后端·spring cloud·微服务·gateway