2019-05-05
2019-05-07 本文已影响0人
CodingMen
1、功能介绍
KONG是Mashape开源的高性能、高可用的API网关和API服务管理层,它基于Nginx服务器,底层引擎使用OpenResty构建,插件层基于Lua语言开发。
Kong运行时,每个API请求都先被Kong命中,然后请求会被代理转发到最终API接口,在requests和responses之间,所有安装和配置的插件都会被执行。
- 可以通过插件扩展已有功能,提供的服务包括:
- HTTP基本认证、秘钥认证
- CORS(跨域资源共享标准)、TCP、UDP
- 文件日志、API请求限流、请求转发、Nginx监控
-
KONG与传统API网关相比的优点:
image.png
2、主要组件
- Kong Server:基于Nginx服务器,用来接收API请求
- Apache Cassandra、PostgreSQL:用来存储操作数据
- Kong dashboard:官方推荐UI管理工具
3、网关插件
- 身份认证插件:Basic Authentication、Key authentication、OAuth2.0 authentication、HMAC authentication、JWT、LDAP authentication
- 安全控制插件:ACL(访问控制)、CORS(跨域资源共享)、动态SSL、IP限制、爬虫检测实现
- 流量控制插件:请求限流(基于请求计数限流)、上游响应限流(根据upstream响应计数限流)、请求大小限制。限流支持本地、Redis和集群限流模式
- 分析监控插件:Galileo(记录请求和响应数据,实现API分析)、Datadog(记录API Metric如请求次数、请求大小、响应状态和延迟,可视化API Metric)、Runscope(记录请求和响应数据,实现API性能测试和监控)
- 协议转换插件:请求转换(在转发到upstream之前修改请求)、响应转换(在upstream响应返回给客户端之前修改响应)
- 日志应用插件:TCP、UDP、HTTP、File、Syslog、StatsD、Loggly等
4、网关特性
- 可扩展性:基于Nginx可以水平扩展多个Kong服务器,同时通过前置的负载均衡配置把请求均匀的分发到各个Server
- 模块化:可以通过添加新的插件进行扩展,插件可以通过RESTful Admin API轻松配置
- Kong核心基于OpenResty(OpenResty是一个基于Nginx与Lua的高性能Web平台,用于方便的搭建能够处理超高并发、扩展性极高的动态Web应用、Web服务和动态网关),实现了请求、响应的Lua处理化
- 通过实现请求、响应的AOP处理,实现拦截请求、响应生命周期
- 通过Kong Restful 提供API、API消费者、插件的管理
构建 -
Kong集群中的节点通过gossip协议自动发现、同步配置信息到其他节点。
image.png