当 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(V1.0.2) Clustering Reference