引入微服务后,客户端(APP,H5,小程序)等一般需要同时调用多个后台的服务,
- 一方面每当引入新的服务时,客户端需要能感知到更新的信息或者配置域名,
- 另一方面,后端的每一个服务可能都要重复实现一些安全、流量控制(限流、排队、降级、熔断)、日志功能,这个过程当服务多了就非常麻烦。
API Gateway 即 API 网关的出现,就是来解决这些问题的。
API Gateway是位于客户端和API的一个单点入口,将客户端的请求反向代理到后端的一组微服务上,同时,天然的路径优势,使得API网关可以做一些面向切面的工作
什么是 KONG ?
KONG 是一款开源的基于 nginx + openresty + 插件的 api 网关;
KONG 有哪些优势?
KONG 是有几大核心优势的,能受欢迎自然有它的道理:
几大核心优势:
- 本身基于 Nginx + lua 以及 Openresty 这个平台,性能优势极高
- 由 于插件化的机制,编写的lua脚本可以在无需重启nginx的情况下热部署生效;
- 一般公司对nginx的积累都不错,特别是运维,因此学习和上手很容易;本质上就是在nginx上外挂了kong的配置,且天然集成了 openresty
- 支持云原生,kubernetes 中 ingress 认证kong为可选网关 (默认是nginx)
- 开源(基于 Apache 2.0协议)、 社区活跃(github)、插件丰富
KONG 有哪些功能?
- 认证(Authentication): 支持 basic auth、jwt、LDAP、oauth2 等认证机制
- 安全(Security):支持CORS、机器人检测、IP限制等操作
- 流量控制(Traffic Control): 支持基于角色的权限控制、代理缓存、RateLimiter等
- 统计监控(analytics & monitoring):支持 zipkin、Prometheus 等监控系统
- 日志(Logging) : 支持丰富的日志插件
- 转换(Transformation):进行请求改写等操作
这么多的插件,开箱即用;一个http请求即生效 ~
接下来我们会开始介绍如何快速上手KONG。
閱讀更多 架構漫談 的文章