插件系统

插件系统的插件能够在路由服务全局中配置。

若在多个模块配置了同一个插件,则配置优先级为:路由>服务>全局,且同个插件只生效一次。 即路由和服务均配置同一个插件,最终会以路由的配置为准

插件执行流程及其更多细节点此进行跳转。

备注

  • 全局插件配置用于启动具体插件,也可为具体插件配置参数,让其在全局范围内生效。
  • 配置多个插件时,插件执行顺序按全局插件配置中插件的顺序。

插件列表

插件名称字段名说明
额外参数extra_params转发时在请求中携带自定义参数
参数映射params_transformer转发时将请求中的原参数映射成自定义参数
转发重写proxy_rewrite转发时对请求的host、scheme、uri进行重写,同时能在请求头加入自定义参数
http-mockinghttp-mocking当执行该插件时,它将随机返回指定格式的模拟数据,并且请求不会转发到上游。
dubbo2协议转发重写dubbo2-proxy-rewrite转发时,对dubbo2协议请求的service_name、method_name进行重写,同时能对attachment加入自定义参数
http协议转dubbo2协议http-to-dubbo2将http请求转换成dubbo2请求
dubbo2协议转http协议dubbo2-to-http将dubbo2请求转换成http请求
IP黑白名单ip_restriction对访问的客户端ip进行黑白限制
流量控制rate_limiting控制请求在单位时间内的访问次数
鉴权auth对请求进行权限校验
响应重写response_rewrite用于重写网关返回的状态码、响应体、头部
API熔断circuit_breaker用于停止对不可用API的转发
跨域CORScors设置跨域的头部字段,实现跨域功能
gzip压缩gzip将响应进行gzip压缩,以提高传输效率
access_logaccess_log记录到达网关的http请求的访问日志

在全局配置插件

全局插件可以声明在程序运行过程中加载插件的名称、顺序、插件的启用状态,也可以配置具体插件在全局范围生效。

以配置在全局范围生效的IP黑白名单插件为例:

路由、上游服务中配置插件

在全局插件中启用了某个插件之后,可以在路由上游服务中引用并配置它。

以在上游服务中配置IP黑白名单插件插件为例:

全局插件中开启

在上游服务中配置该插件

调整多个插件执行顺序

当一条转发路径配置多个插件时,对插件鼠标左键进行拖拉可以改变插件的执行顺序