kong是一个云原生的、高性能的、可扩展的API网关(分布式微服务抽象层)。 kong基于openresty, nginx+lua模块开发,其核心价值就是高性能和可扩展性。

kong的基本运行情况如下图所示,kong可以通过充当微服务请求的网关, 同时通过插件提供负载均衡、日志记录、身份认证、速率限制(rate-limiting)、转换(transformations)等功能。

the-kong-way.png

客户端请求到达kong网关后,经过一系列的插件处理之后才会将请求转发给指定的后端服务。

kong的主要组件包含:

  • Kong Server: 基于nginx的服务器,用来接收API请求
  • PostgreSQL或Apache Cassandra: 用来存储数据
  • konga: 第三方开源的图形化管理工具,支持kong的最新版本(因为kong的社区版不提供dashboard)

kong的三大基础特性:

  • 可扩展性: 可以通过添加更多服务器进行横向扩展
  • 模块化: 通过添加插件进行扩展其插件可定制开发
  • 云原生: 可在任何基础架构上运行,如云环境或内部网络,对云原生、kubernetes天然支持

参考