插件是什么?
Kong Gateway是一个Lua应用程序,旨在加载和执行Lua或Go模块,我们通常称为插件。Kong提供了一组标准的Lua插件,这些插件与Kong Gateway捆绑在一起。您可以访问的插件集取决于您的安装方式:开源、企业版或在Kubernetes上运行的这些Kong Gateway选项之一。
Kong社区也可以开发自定义插件,并由插件的创建者提供支持和维护。如果它们在Kong插件中心发布,它们被称为社区或第三方插件。
为什么使用插件?
插件提供高级功能并扩展了Kong Gateway的使用,可以让您给实现添加新特性。插件可以配置在各种上下文中运行,从特定路由到所有upstreams,并可以在请求被代理到upstream API之前或之后以及在任何传入响应时在Kong内部执行操作。
插件与部署类型的兼容性
Kong Gateway可以以多种方式进行部署,并非所有插件都与每种模式完全兼容。请参考插件兼容性进行比较。
优先级
每个请求始终只运行一个插件实例。它运行的配置取决于为其配置的实体。插件可以配置为适用于各种实体,实体的组合,甚至全局。这在以下情况下很有用,例如,当您想要为大多数请求以某种方式配置插件,但希望对已认证的请求行为稍有不同时。
因此,当某个插件应用于具有不同配置的不同实体时,存在一个插件运行的优先顺序。配置给特定插件的实体数量直接与其优先级相关。配置给插件的实体越多,其优先顺序就越高。对于配置给多个实体的插件来说,完整的优先顺序如下:
- 配置在消费者、路由和服务的组合上的插件。
- 配置在消费者组、服务和路由的组合上的插件。
- 配置在消费者和路由的组合上的插件。
- 配置在消费者和服务的组合上的插件。
- 配置在消费者组和路由上的插件。
- 配置在消费者组和服务上的插件。
- 配置在路由和服务上的插件。
- 配置在消费者上的插件。
- 配置在消费者组上的插件。
- 配置在路由上的插件。
- 配置在服务上的插件。
- 全局配置的插件。
术语 (Terminology)
插件(Plugin)
Kong Gateway的扩展。
对于由Kong开发和维护的插件,插件版本通常不会对您的实现产生影响,除了了解哪个Kong版本包含哪个插件功能。Kong插件与Kong Gateway捆绑在一起,因此兼容的插件版本已经与正确的Kong版本关联起来。
Kong插件或Kong捆绑插件
由Kong开发、维护和支持的插件。
由于第三方插件并非由Kong维护并且未捆绑在Kong Gateway中,版本兼容性是一个更大的问题。请查看每个单独插件页面以了解其经过测试的兼容性。
如果插件页面上的版本已过时,请直接联系维护者。
不支持的插件
由外部开发人员开发、测试和维护的自定义插件,而不是由Kong开发。Kong不会测试这些插件,也不会更新它们的版本兼容性。
开发自定义插件
Kong提供了完整的开发环境,用于开发插件,包括Lua和Go的SDK,数据库抽象层,迁移工具等等。
插件由通过Plugin Development Kit(PDK)与请求/响应对象或流进行交互的模块组成,以实现任意逻辑。Kong为两种语言提供了PDK:Lua和Go。这两个PDK都是一组插件可以使用的函数,用于促进插件与Kong的核心(或其他组件)之间的交互。
贡献自定义插件
如果您希望与其他Kong用户共享您的自定义插件,您还必须向Kong插件中心提交插件参考文档。请查看添加文档的贡献指南。 文章来源:https://www.toymoban.com/news/detail-819380.html
文章来源地址https://www.toymoban.com/news/detail-819380.html
到了这里,关于插件(Plugins)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!