From a972e0f3093e5559884cea2f010c60827b7801bd Mon Sep 17 00:00:00 2001 From: aoshiguchen <1052045476@qq.com> Date: Wed, 31 May 2023 22:29:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96=EF=BC=8C?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E6=96=B0=E5=A2=9E=E7=AB=AF=E5=8F=A3=E6=98=A0?= =?UTF-8?q?=E5=B0=84=E6=97=B6=E4=B8=8D=E6=96=AD=E5=88=9B=E5=BB=BA=E6=96=B0?= =?UTF-8?q?=E7=9A=84ServerBootstrap=E5=AE=9E=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../server/base/proxy/ProxyConfiguration.java | 9 +++++++++ .../server/service/VisitorChannelService.java | 20 ++++++++----------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/base/proxy/ProxyConfiguration.java b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/base/proxy/ProxyConfiguration.java index a4c2ca6b..186ca59e 100644 --- a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/base/proxy/ProxyConfiguration.java +++ b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/base/proxy/ProxyConfiguration.java @@ -1,5 +1,6 @@ package org.dromara.neutrinoproxy.server.base.proxy; +import io.netty.bootstrap.ServerBootstrap; import org.dromara.neutrinoproxy.core.ProxyDataTypeEnum; import org.dromara.neutrinoproxy.core.ProxyMessage; import org.dromara.neutrinoproxy.core.ProxyMessageHandler; @@ -43,6 +44,14 @@ public class ProxyConfiguration implements LifecycleBean { return new NioEventLoopGroup(proxyConfig.getServer().getWorkThreadCount()); } + @Bean("tcpServerBootstrap") + public ServerBootstrap tcpServerBootstrap(@Inject("serverBossGroup") NioEventLoopGroup serverBossGroup, + @Inject("serverWorkerGroup") NioEventLoopGroup serverWorkerGroup) { + ServerBootstrap bootstrap = new ServerBootstrap(); + bootstrap.group(serverBossGroup, serverWorkerGroup); + return bootstrap; + } + @Bean("tunnelBossGroup") public NioEventLoopGroup tunnelBossGroup(@Inject ProxyConfig proxyConfig) { return new NioEventLoopGroup(proxyConfig.getTunnel().getBossThreadCount()); diff --git a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/service/VisitorChannelService.java b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/service/VisitorChannelService.java index 6eb7c5aa..229780ba 100644 --- a/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/service/VisitorChannelService.java +++ b/neutrino-proxy-server/src/main/java/org/dromara/neutrinoproxy/server/service/VisitorChannelService.java @@ -41,10 +41,8 @@ import java.util.stream.Collectors; @Slf4j @Component public class VisitorChannelService { - @Inject("serverBossGroup") - private NioEventLoopGroup serverBossGroup; - @Inject("serverWorkerGroup") - private NioEventLoopGroup serverWorkerGroup; + @Inject("tcpServerBootstrap") + private ServerBootstrap tcpServerBootstrap; @Inject private ProxyMutualService proxyMutualService; @Db @@ -218,20 +216,18 @@ public class VisitorChannelService { if (CollectionUtil.isEmpty(portMappingList)) { return; } - ServerBootstrap bootstrap = new ServerBootstrap(); - bootstrap.group(serverBossGroup, serverWorkerGroup) - .channel(NioServerSocketChannel.class).childHandler(new ChannelInitializer() { + tcpServerBootstrap.channel(NioServerSocketChannel.class).childHandler(new ChannelInitializer() { @Override public void initChannel(SocketChannel ch) throws Exception { - ch.pipeline().addFirst(new BytesMetricsHandler()); - ch.pipeline().addLast(new TcpVisitorChannelHandler()); - } - }); + ch.pipeline().addFirst(new BytesMetricsHandler()); + ch.pipeline().addLast(new TcpVisitorChannelHandler()); + } + }); for (PortMappingDO portMapping : portMappingList) { try { proxyMutualService.bindServerPort(cmdChannelAttachInfo, portMapping.getServerPort()); - bootstrap.bind(portMapping.getServerPort()).get(); + tcpServerBootstrap.bind(portMapping.getServerPort()).get(); log.info("绑定用户端口: {}", portMapping.getServerPort()); } catch (Exception ex) { // BindException表示该端口已经绑定过