插件名称
|
优先级
|
acl
|
950
|
acme
|
1705
|
ai-prompt-decorator
|
772
|
ai-prompt-guard
|
771
|
ai-prompt-template
|
773
|
ai-proxy
|
770
|
ai-request-transformer
|
777
|
ai-response-transformer
|
769
|
aws-lambda
|
750
|
azure-functions
|
749
|
basic-auth
|
1100
|
bot-detection
|
2500
|
correlation-id
|
1
|
cors
|
2000
|
datalog
|
10
|
file-log
|
9
|
grpc_gateway
|
998
|
grpc_web
|
3
|
hmac-auth
|
1030
|
http-log
|
12
|
ip-restriction
|
990
|
jwt
|
1450
|
key-auth
|
1250
|
ldap-auth
|
1200
|
loggly
|
6
|
oauth2
|
1400
|
opentelemetry
|
14
|
prometheus
|
13
|
proxy-cache
|
100
|
rate-limiting
|
910
|
request-size-limiting
|
951
|
request-termination
|
2
|
request-transformer
|
801
|
response-ratelimiting
|
900
|
response-transformer
|
800
|
session
|
1900
|
statsd
|
11
|
syslog
|
4
|
tcp-log
|
7
|
udp-log
|
8
|
zipkin
|
100000
|
注:如上插件是在kong master分支整理的当前插件优先级情况
schema.lua
handler.lua主要负责业务逻辑功能编写,schema.lua主要负责
插件
参数定制,类似将handler.lua中写死的变量抽出来写到schema.lua中,变为动
我曾经在前面的文章中系统性的描述了下
Kong
的
插件
加载机制,这篇我将通过源码解析的方式呈现其数据走向。剔除掉第三方依赖,
Kong
的核心代码结构如下:
kong
/
├── api/
├── cluster_events/
├── cmd/
├── core/
├── dao/
├── plugins/
├── templates/
├── tools/
├── vendor/
├── cache.lua
├── cluster_events.lua
├── conf_loader.lua
Kong
Gateway 是一个轻量、快速、灵活的基于Nginx开发云原生 API
网关
。在云原生领域,
Kong
Gateway 越来受欢迎。
Kong
提供了
插件
化能力,在对后台业务服务代码无侵入的条件下,可以在接入层方便地引入认证鉴权、安全防护、流量控制都能功能。这也是其受欢迎的原因之一。
Kong
Gateway 官方已经提供了一系列常用的
插件
,但是业务开发中有时需要定制自己的
插件
。本文将介绍如何编写
Kong
的
自定义
插件
,以及如何将
插件
集成到
Kong
网关
中。
消费方(u),路由服务(r)[作用所有u],业务服务(s)[作用所有u],全局
插件
(b)[作用所有u]业务服务上安装此
插件
,对于所有此业务服务下的所有路由服务都被限流并且共用限流数量。路由服务[作用单个u],业务服务(s)[作用单个u],全局
插件
(b)[作用单个u]该文章纯属用于记录,如对其
插件
优先级
有理解不对的地方还望指正!
优先级
:单个消费方>单个路由Api>单个业务Api>全局。同时配置四个
插件
:u>r>s>b。同时配置三个
插件
:r>s>b。
1. 概述
插件
可以认为是
Kong
管理 API 的核心,其模块化和可扩张性做得很好,尤其是其灵活的加载机制使得
Kong
能够针对不同 API 启用、组合任意
插件
。
Kong
默认自带的
插件
集,按照功能的不同大致可以分为六大类:Authentication 认证、Security 安全、Traffic Control 流量控制、Analytics & Monitoring 分析监控、Transformations 请求报文处理、Logging 日志等。
无论是为了理解这些
插件
的工作原理,亦或者是定
开发
自定义
插件
之前,需要了解下
kong
插件
开发指南,详情点击官方指导文档
1
插件
目录结构
所有的
Kong
插件
都位于
kong
/plugins目录下, 如在plugins目录我们创建一个名为hello-world
插件
, 至少需要包含2个文件,如下所示:
plugins
├── hello-world
│ ├── handler.lua
│ └── schema.lua # (必需...
kong
的
插件
安装参考:https://blog.csdn.net/luanpeng825485697/article/details/85287291
kong
官方
插件
的使用参考:https://blog.csdn.net/luanpeng825485697/article/details/85326831
自定义
插件
:
Kong
插件
的文件结构分基本
插件
模块和完整
插件
模块两种,基本插...
版权说明:本文为博主原创,如果转载请注明来源。作为学习笔记,不能保证所有知识点是完全正确以及表达无误,用于生产环境配置时请斟酌。如有错误或建议请联系。侵删联系:linuxops@qq.com。感谢各位!
安装好了
Kong
,那么如何使用和管理它呢?
Kong
附带了一个管理的API接口,...