当 kong 节点收到请求时,kong 如何知道要执行哪个插件?

Posted

技术标签:

【中文标题】当 kong 节点收到请求时,kong 如何知道要执行哪个插件?【英文标题】:How will kong know which plugin to execute when a request comes at the kong node? 【发布时间】:2021-07-24 22:34:24 【问题描述】:

我正在与 kong 合作,然后想了解 kong 如何知道为刚刚到达网关的请求执行哪个插件。

假设我们在服务实体上配置了速率限制插件,并有一个与之关联的路由 kong 现在知道当请求到达该路由时它必须执行速率限制插件。

是否基于插件配置?如果是这样,kong 会从数据库中提取此详细信息

请解释一下插件的执行机制。

PS:我知道执行顺序,但不知道 kong 如何决定执行哪个插件。

【问题讨论】:

【参考方案1】:

不确定你在寻找什么。

当然这是基于插件配置的。 插件的配置存储为您的 kong 配置,您可以将其配置为在内存中或在数据库中,请参阅datastore section 了解更多详情

如果您对多个插件有疑问,插件有一个硬编码的优先级以知道执行顺序,请参阅plugins order

如果您质疑将执行哪些插件,可以为各种实体、​​实体组合甚至全局配置插件。

插件将始终运行一次,并且每次请求仅运行一次。但是它将运行的配置取决于它所配置的实体。插件配置的实体数量越具体,其优先级越高,您可以获取有关precedence的更多详细信息

示例:如果限速插件被应用了两次(使用不同的配置):对于服务(插件配置 A)和消费者(插件配置 B),则验证此消费者的请求将运行插件配置 B 和忽略 A。但是,未对此使用者进行身份验证的请求将回退到运行插件配置 A。请注意,如果配置 B 被禁用(其启用标志设置为 false),配置 A 将应用于本来与配置 B 匹配的请求.

固定链接

【讨论】:

以上是关于当 kong 节点收到请求时,kong 如何知道要执行哪个插件?的主要内容,如果未能解决你的问题,请参考以下文章

kong api网关如何使用redis

Kong(V1.0.2) Clustering Reference

如何将自定义 kong 插件添加到 dockerized kong

负载均衡详解 - 玩转Kong网关

API 网关 Kong

API 网关 Kong