这是我参与「第五届青训营」伴学笔记创作活动的第 16 天
API 网关
我们知道在微服务架构中,大型服务都被拆分成了独立的微服务,每个微服务通常会以RESTFUL API的形式对外提供服务。但是在UI方面,我们可能需要在一个页面上显示来自不同微服务的数据,此时就会需要一个统一的入口来进行API的调用。上图中我们可以看到,API Gateway就在此场景下充当了多个服务的大门,系统的统一入口,从面向对象设计的角度看,它与外观模式类似,API Gateway封装了系统的内部复杂结构,同时它还可能具有其他API管理/调用的通用功能,如认证,限流,流控等功能。
Kong
Kong Gateway 是一个轻量级、快速、灵活的云原生 API 网关。API 网关是一种反向代理,可让您管理、配置请求并将请求路由到您的 API。Kong Gateway 在任何 RESTful API 之前运行,可以通过模块和插件进行扩展。它旨在在分散式架构上运行,包括混合云和多云部署。使用 Kong Gateway,用户可以:利用工作流自动化和现代 GitOps 实践分散应用程序/服务并过渡到微服务打造繁荣的 API 开发者生态系统主动识别与 API 相关的异常和威胁保护和管理 API/服务,并提高 API 在整个组织中的可见性。
Kong Gateway 是一个运行在 Nginx 中的 Lua 应用程序。Kong Gateway 与 OpenResty 一起分发,OpenResty 是一组扩展 lua-nginx-module 的模块。这为模块化架构奠定了基础,插件可以在运行时启用和执行。Kong Gateway 的核心是实现数据库抽象、路由和插件管理。插件可以存在于单独的代码库中,并可以注入到请求生命周期的任何地方,只需几行代码。Kong 提供了许多插件供您在网关部署中使用。您还可以创建自己的自定义插件。有关详细信息,请参阅插件开发指南、PDK 参考和使用其他语言(JavaScript、Go 和 Python)创建插件的指南。