解压安装包的软件 解压安装包并安装步骤

今天准备介绍下开源API网关Kong , 在Gtihub搜索API网关类的开源产品 , 可以看到Kong网关常年都是排第一的位置 , 而且当前很多都有一定研发能力的企业在API网关产品选型的时候基本也会选择Kong网关 , 并基于Kong网关进行二次开发和定制 。
API网关概述

解压安装包的软件 解压安装包并安装步骤


简单来说API网关就是将所有的微服务提供的API接口服务能力全部汇聚进来 , 统一接入进行管理 , 也正是通过统一拦截 , 就可以通过网关实现对API接口的安全 , 日志 , 限流熔断等共性需求 。如果再简单说下 , 通过网关实现了几个关键能力 。
  • 内部的微服务对外部访问来说位置透明 , 外部应用只需和网关交互
  • 统一拦截接口服务 , 实现安全 , 日志 , 限流熔断等需求
从这里 , 我们就可以看到API网关和传统架构里面的ESB总线是类似的 , 这些关键能力本身也是ESB服务总线的能力 , 但是ESB服务总线由于要考虑遗留系统的接入 , 因此增加了:
  • 大量适配器实现对遗留系统的遗留接口适配 , 多协议转换能力
  • 进行数据的复制映射 , 路由等能力
对于两者 , 我原来做过一个简单的对比 , 大家可以参考 。
【解压安装包的软件 解压安装包并安装步骤】
解压安装包的软件 解压安装包并安装步骤


对于API网关进一步的功能介绍 , 可以我前面参考文章:
一文详细讲解API网关核心功能和API管理扩展
基于Openresty开发API网关
解压安装包的软件 解压安装包并安装步骤


在谈API网关前 , 我们先谈下Openresty 。在前面文章谈到过 , 当前适合用于API网关的架构 , 一种是基于Openresty的 , 一种是基于Go语言的 。
OpenResty? 是一个基于 Nginx 与 Lua 的高性能 Web 平台 , 其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项 。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关 。
OpenResty? 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发) , 从而将 Nginx 有效地变成一个强大的通用系统 Web 应用平台 。这样 , Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块 , 快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统 。
OpenResty? 的目标是让你的Web服务直接跑在 Nginx 服务内部 , 充分利用 Nginx 的非阻塞 I/O 模型 , 不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应 。
为何Openresty适合用于API网关开发?
对于API网关 , 有一个最基础的核心功能即需要实现接口服务代理路由 , 而这个本身也是Nginx反向代理能够提供的一个标准功能 。
如果应用场景比较简单 , 仅仅是实现统一接口对外暴露 , 可以看到很多企业实际并没有采用API网关 , 而是直接采用了Nginx来替代API网关的服务代理路由功能 。
其次 , 对于常规的API网关的中间件研发 , 在研发完成后本身还要依托一个Web容器进行部署 , 同时还需要自己去实现类似路由代理等各种能力 。

推荐阅读