1. 概述
1.1 插件名称
divide插件
1.2 适用场景
- 处理
http协议请求 - 支持流量治理,例如a/b 测试、灰度测试
- 服务负载均衡
- 设置接口的超时时间
1.3 插件功能
- 支持根据 uri、header、query 等请求信息做流量的治理
- 支持设置请求的负载均衡策略,同时支持服务预热,目前支持三种策略:ip hash(带虚拟节点的一致性哈希)、round-robbin(加权轮询)、random(加权随机)
- 支持设置接口级别请求头最大值、请求体最大值、请求超时时间
- 支持设置超时重试策略和重试次数,目前重试策略支持:current(重试之前失败的服务器)和failover(重试其它服务器)
1.4 插件代码
- 核心模块
shenyu-plugin-divide - 核心类
org.apache.shenyu.plugin.divide.DividePlugin
2. 如何使用插件
2.1 插件使用流程图

2.2 导入 pom
- 在网关的
pom.xml文件中添加插件 maven 配置。
<dependency>
<groupId>org.apache.shenyu</groupId>
<artifactId>shenyu-spring-boot-starter-gateway</artifactId>
<version>${project.version}</version>
</dependency>
2.3 启 用插件
- 在
shenyu-admin--> 基础配置 --> 插件管理 -->divide设置为开启。

2.4 配置插件
2.4.1 在客户端项目配置文件中配置接入参数
- 客户端接入方式和服务器地址,下面的示例使用了 http 接入方式,目前客户端支持的接入的方式有以下几种:http、zookeeper、etcd、nacos、consul,详细的接入配置参数请参考客户端接入配置。
- 客户端配置,包含协议名称以及服务的路由地址,这里请使用 http 协议,并且必须配置 contextPath 的值作为每个服务的路由地址。
shenyu:
register:
registerType: http
serverLists: http://localhost:9095
props:
username: admin
password: 123456
client:
http: # http 协议
props:
contextPath: /http # 每个服务的路由地址