1. 概述
1.1 插件名称
- TCP插件
1.2 适用场景
- 处理 TCP 协议请求,将其转发到后端其他 TCP 协议的服务
- 服务负载均衡
1.3 插件功能
- 支持根据配置的 upstream list 做 TCP 代理;
- upstream list 可在 admin 模块自行配置,热同步到 gateway;
- 支持设置请求的负载均衡策略,目前支持 shenyu 负载均衡模块的策略;
- 支持配置开启端口进行监听,可配置 reactor-netty 参数;
- 支持开启多个代理 选择器
注意: 负载均衡作用与gateway建立连接时,当连接建立,后续的流量继续保持负载均衡模块已经选定的upstream
1.4 插件代码
- 核心模块:
shenyu-plugin-tcpshenyu-protocol-tcp
1.5 添加自哪个shenyu版本
- 2.6.0
2. 如何使用插件
2.1 启用插件
- 初次使用时,启动 admin server,在
shenyu-admin--> 基础配置 --> 插件管理 中, 搜索 tcp 插件 并且点击“资源”激活 TCP 插件模块

- 在
shenyu-admin--> 基础配置 --> 插件管理 -->tcp,设置为开启

2.2 配置插件
- TCP 插件是以代理选择器(proxy-selector)为单位创建的,因此配置插件 即是配置代理选择器的属性。 创建代理选择器时,点击页面的“添加选择器按钮”,在弹出的选择器表单中,即可对选择器属性进行配置:

默认配置如下:
{
"loadBalance": "random",
"bossGroupThreadCount": "1",
"workerGroupThreadCount": "12",
"clientMaxConnections": "20",
"clientMaxIdleTimeMs": "30000",
"clientMaxLifeTimeMs": "60000",
"clientPendingAcquireTimeout": "5",
"clientPendingAcquireMaxCount": "5"
}
loadBalanceAlgorithm: shenyu负载均衡算法,默认为randombossGroupThreadCount,workerGroupThreadCount: ReactorNetty TcpServer 配置,详情见shenyu-protocol-tcp#TcpBootstrapServer#startclientMaxConnections,clientMaxIdleTimeMs,clientMaxLifeTimeMs,clientPendingAcquireTimeout,clientPendingAcquireMaxCount: ReactorNettyConnectionProvider配置,详情见shenyu-protocol-tcp#ConnectionContext
用户可以在shenyu-admin --> 基础配置 --> 插件处理管理 中,搜索 tcp 插件,对默认配置进行修改编辑:
