Divide插件

说明

divide插件是网关用于处理 http协议请求的核心处理插件。

插件设置

插件讲解

divide插件是进行http正向代理的插件,所有http类型的请求,都是由该插件进行负载均衡的调用。

Divide插件 - 图1

客户端接入Apache ShenYu网关后,会自动注册选择器和规则信息,关于选择器和规则配置,请参考:选择器和规则管理

选择器处理

Divide插件 - 图2

选择器处理: 对应选择器和规则管理handle字段,是网关匹配到流量以后,真实调用的http配置,可以配置多个,设置负载均衡权重,具体的负载均衡策略,在规则中指定。更多信息请参考插件管理中的 插件处理管理

  • 处理配置详解:

    • host:填写 localhost,该字段暂时没使用。

    • ip:portip 与端口,这里填写你真实服务的 ip + 端口。

    • protocol::http 协议,填写 http:// 或者 https:// ,不填写默认为:http://

    • startupTime: 启用时间。

    • weight:负载均衡权重。

    • warmupTime:预热时间。

    • status:开启或关闭。

    • ip + port 检测

      • shenyu-admin 会有一个定时任务来扫描 配置的ip端口,如果发现下线,则会删除该 ip + port

      • 可以进行如下配置 :

  1. shenyu:
  2. register:
  3. registerType: http
  4. serverLists:
  5. props:
  6. sessionTimeout: 5000
  7. connectionTimeout: 2000
  8. checked: true # 默认为 ture,设置为false,不检测
  9. zombieCheckTimes: 5
  10. scheduledTime: 10 # 定时检测时间间隔,默认10秒

规则处理

Divide插件 - 图3

规则处理,即handle字段,是网关对流量完成最终匹配后,采取何种处理规则。更多信息请参考插件管理中的 插件处理管理

  • 处理配置详解:
    • loadStrategy:如果http客户端是一个集群,Apache ShenYu网关调用时采取哪种负载均衡策略,当前支持 roundRobinrandomhash
    • retryCount:调用http客户端的重试次数。
    • timeout:调用http客户端的超时时间。
    • headerMaxSize:请求的header的最大值。
    • requestMaxSize:请求体的最大值。