From 60eb66c2aacdc04adf48cc10be33296c6060671f Mon Sep 17 00:00:00 2001 From: wujiawei <12345678> Date: Thu, 11 Jan 2024 10:52:47 +0800 Subject: [PATCH] =?UTF-8?q?[fix]=20=E4=BF=AE=E6=94=B9bean=20=E6=89=8B?= =?UTF-8?q?=E5=8A=A8=E6=B3=A8=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tion.java => ClientAutoConfiguration.java} | 14 ++-- .../config/HeartbeatClientConfiguration.java | 66 ++++++++++++++++ .../NettyClientVisitorRealHandler.java | 3 + .../main/resources/META-INF/spring.factories | 5 +- ...ot.autoconfigure.AutoConfiguration.imports | 3 + .../pom.xml | 44 +++++------ .../src/main/resources/bootstrap.yml | 12 --- .../config/HeartbeatServerConfiguration.java | 78 +++++++++++++++++++ ...tion.java => ServerAutoConfiguration.java} | 4 +- .../main/resources/META-INF/spring.factories | 4 +- ...ot.autoconfigure.AutoConfiguration.imports | 2 + 11 files changed, 188 insertions(+), 47 deletions(-) rename wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/{AutoConfiguration.java => ClientAutoConfiguration.java} (81%) create mode 100644 wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/HeartbeatClientConfiguration.java delete mode 100644 wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/src/main/resources/bootstrap.yml create mode 100644 wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/netty/config/HeartbeatServerConfiguration.java rename wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/netty/config/{AutoConfiguration.java => ServerAutoConfiguration.java} (91%) diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/AutoConfiguration.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/ClientAutoConfiguration.java similarity index 81% rename from wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/AutoConfiguration.java rename to wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/ClientAutoConfiguration.java index 9135f5c..a47788a 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/AutoConfiguration.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/ClientAutoConfiguration.java @@ -6,7 +6,6 @@ import wu.framework.lazy.cloud.heartbeat.client.application.ClientNettyConfigApp import wu.framework.lazy.cloud.heartbeat.client.netty.socket.NettyClientSocket; import lombok.extern.slf4j.Slf4j; import org.springframework.boot.CommandLineRunner; -import org.springframework.boot.autoconfigure.web.ServerProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -23,9 +22,8 @@ import java.util.concurrent.TimeUnit; */ @Slf4j @Configuration -public class AutoConfiguration implements CommandLineRunner { +public class ClientAutoConfiguration implements CommandLineRunner { - private final ServerProperties serverProperties; private final NettyServerProperties nettyServerProperties; private final ClientNettyConfigApplication clientNettyConfigApplication; @@ -35,11 +33,9 @@ public class AutoConfiguration implements CommandLineRunner { ThreadPoolExecutor NETTY_CLIENT_EXECUTOR = new ThreadPoolExecutor(1, 1, 200, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(1)); - public AutoConfiguration(ServerProperties serverProperties, - NettyServerProperties nettyServerProperties, - ClientNettyConfigApplication clientNettyConfigApplication, - List channelTypeAdvancedList) { - this.serverProperties = serverProperties; + public ClientAutoConfiguration(NettyServerProperties nettyServerProperties, + ClientNettyConfigApplication clientNettyConfigApplication, + List channelTypeAdvancedList) { this.nettyServerProperties = nettyServerProperties; this.clientNettyConfigApplication = clientNettyConfigApplication; this.channelTypeAdvancedList = channelTypeAdvancedList; @@ -47,7 +43,7 @@ public class AutoConfiguration implements CommandLineRunner { @Bean(destroyMethod = "shutdown") - public NettyClientSocket nettyServerSocket() { + public NettyClientSocket nettyClientSocket() { String inetHost = nettyServerProperties.getInetHost(); int inetPort = nettyServerProperties.getInetPort(); String clientId = nettyServerProperties.getClientId(); diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/HeartbeatClientConfiguration.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/HeartbeatClientConfiguration.java new file mode 100644 index 0000000..51ad902 --- /dev/null +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/config/HeartbeatClientConfiguration.java @@ -0,0 +1,66 @@ +package wu.framework.lazy.cloud.heartbeat.client.netty.config; + + +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Role; +import wu.framework.lazy.cloud.heartbeat.client.application.ClientNettyConfigApplication; +import wu.framework.lazy.cloud.heartbeat.client.netty.advanced.*; +import wu.framework.lazy.cloud.heartbeat.client.netty.config.NettyServerProperties; +import wu.framework.lazy.cloud.heartbeat.common.advanced.ChannelTypeAdvanced; + +import java.util.List; +@Role(BeanDefinition.ROLE_INFRASTRUCTURE) +public class HeartbeatClientConfiguration { + + /** + * 服务端 处理客户端心跳 + * + * @return ClientChannelHeartbeatTypeAdvanced + */ + @Bean + public ClientChannelHeartbeatTypeAdvanced clientChannelHeartbeatTypeAdvanced() { + return new ClientChannelHeartbeatTypeAdvanced(); + } + + /** + * 处理 客户端代理的真实端口自动读写 + * @return ClientDistributeSingleClientRealAutoReadConnectTypeAdvanced + */ + @Bean + public ClientDistributeSingleClientRealAutoReadConnectTypeAdvanced clientDistributeSingleClientRealAutoReadConnectTypeAdvanced(){ + return new ClientDistributeSingleClientRealAutoReadConnectTypeAdvanced(); + } + @Bean + public ClientDistributeSingleClientRealCloseVisitorTypeAdvanced clientDistributeSingleClientRealCloseVisitorTypeAdvanced(){ + return new ClientDistributeSingleClientRealCloseVisitorTypeAdvanced(); + } + + @Bean + public ClientReportChannelTransferTypeAdvanced clientReportChannelTransferTypeAdvanced(NettyServerProperties nettyServerProperties){ + return new ClientReportChannelTransferTypeAdvanced(nettyServerProperties); + } + @Bean + public DistributeConnectSuccessNotificationTypeAdvanced distributeConnectSuccessNotificationTypeAdvanced(ClientNettyConfigApplication clientNettyConfigApplication, NettyServerProperties nettyServerProperties){ + return new DistributeConnectSuccessNotificationTypeAdvanced(clientNettyConfigApplication, nettyServerProperties); + } + @Bean + public DistributeDisconnectTypeAdvanced distributeDisconnectTypeAdvanced(ClientNettyConfigApplication clientNettyConfigApplication){ + return new DistributeDisconnectTypeAdvanced(clientNettyConfigApplication); + } + @Bean + public DistributeStagingClosedTypeAdvanced distributeStagingClosedTypeAdvanced(){ + return new DistributeStagingClosedTypeAdvanced(); + } + @Bean + public DistributeStagingOpenedTypeAdvanced distributeStagingOpenedTypeAdvanced(){ + return new DistributeStagingOpenedTypeAdvanced(); + } + + + @Bean + public ClientDistributeSingleClientRealConnectTypeAdvanced clientDistributeSingleClientRealConnectTypeAdvanced(NettyServerProperties nettyServerProperties, + List channelTypeAdvancedList ){ + return new ClientDistributeSingleClientRealConnectTypeAdvanced(nettyServerProperties,channelTypeAdvancedList); + } +} diff --git a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/handler/NettyClientVisitorRealHandler.java b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/handler/NettyClientVisitorRealHandler.java index 4ebc1ca..b475e79 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/handler/NettyClientVisitorRealHandler.java +++ b/wu-lazy-cloud-heartbeat-client/src/main/java/wu/framework/lazy/cloud/heartbeat/client/netty/handler/NettyClientVisitorRealHandler.java @@ -11,6 +11,9 @@ import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import lombok.extern.slf4j.Slf4j; +/** + * 客户端访客通信通道 处理器 + */ @Slf4j public class NettyClientVisitorRealHandler extends SimpleChannelInboundHandler { private final ChannelTypeAdapter channelTypeAdapter; diff --git a/wu-lazy-cloud-heartbeat-client/src/main/resources/META-INF/spring.factories b/wu-lazy-cloud-heartbeat-client/src/main/resources/META-INF/spring.factories index 6a9612a..a5e1128 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/resources/META-INF/spring.factories +++ b/wu-lazy-cloud-heartbeat-client/src/main/resources/META-INF/spring.factories @@ -1,3 +1,6 @@ # Auto Configure org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ -wu.framework.lazy.cloud.heartbeat.client.EnableHeartbeatClientAutoConfiguration +wu.framework.lazy.cloud.heartbeat.client.EnableHeartbeatClientAutoConfiguration,\ +wu.framework.lazy.cloud.heartbeat.client.netty.config.NettyServerProperties,\ +wu.framework.lazy.cloud.heartbeat.client.netty.config.ClientAutoConfiguration,\ +wu.framework.lazy.cloud.heartbeat.client.netty.config.HeartbeatClientConfiguration diff --git a/wu-lazy-cloud-heartbeat-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/wu-lazy-cloud-heartbeat-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 2fa599c..f17862f 100644 --- a/wu-lazy-cloud-heartbeat-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/wu-lazy-cloud-heartbeat-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1 +1,4 @@ wu.framework.lazy.cloud.heartbeat.client.EnableHeartbeatClientAutoConfiguration +wu.framework.lazy.cloud.heartbeat.client.netty.config.NettyServerProperties +wu.framework.lazy.cloud.heartbeat.client.netty.config.ClientAutoConfiguration +wu.framework.lazy.cloud.heartbeat.client.netty.config.HeartbeatClientConfiguration diff --git a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/pom.xml b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/pom.xml index e77b51a..ce11326 100644 --- a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/pom.xml +++ b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/pom.xml @@ -27,28 +27,28 @@ - - org.graalvm.buildtools - native-maven-plugin - - - ${project.artifactId} - - wu.framework.lazy.cloud.heartbeat.client.LazyCloudHeartbeatClient - - --no-fallback - - - - - build-native - - compile-no-fork - - package - - - + + + + + + + + + + + + + + + + + + + + + + org.springframework.boot spring-boot-maven-plugin diff --git a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/src/main/resources/bootstrap.yml b/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/src/main/resources/bootstrap.yml deleted file mode 100644 index 706ffe0..0000000 --- a/wu-lazy-cloud-heartbeat-sample/wu-lazy-cloud-heartbeat-client-sample/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,12 +0,0 @@ - - - -spring: - application: - name: middleground-under-cloud-heartbeat-client - cloud: - nacos: - discovery: - server-addr: 192.168.17.221:30569 - config: - server-addr: 192.168.17.221:30569 diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/netty/config/HeartbeatServerConfiguration.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/netty/config/HeartbeatServerConfiguration.java new file mode 100644 index 0000000..5a90ff5 --- /dev/null +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/netty/config/HeartbeatServerConfiguration.java @@ -0,0 +1,78 @@ +package wu.framework.lazy.cloud.heartbeat.server.netty.config; + + +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Role; +import wu.framework.lazy.cloud.heartbeat.server.application.InternalNetworkPenetrationMappingApplication; +import wu.framework.lazy.cloud.heartbeat.server.application.NettyClientBlacklistApplication; +import wu.framework.lazy.cloud.heartbeat.server.application.ServerNettyConfigApplication; +import wu.framework.lazy.cloud.heartbeat.server.netty.advanced.*; + + +@Role(BeanDefinition.ROLE_INFRASTRUCTURE) +public class HeartbeatServerConfiguration { + + /** + * 服务端 处理客户端心跳 + * + * @return ServerChannelHeartbeatTypeAdvanced + */ + @Role(BeanDefinition.ROLE_INFRASTRUCTURE) + @Bean + public ServerChannelHeartbeatTypeAdvanced serverChannelHeartbeatTypeAdvanced() { + return new ServerChannelHeartbeatTypeAdvanced(); + } + + /** + * 处理 服务端处理客户端数据传输 + * + * @return ServerReportChannelTransferTypeAdvanced + */ + @Role(BeanDefinition.ROLE_INFRASTRUCTURE) + @Bean + public ServerReportChannelTransferTypeAdvanced serverReportChannelTransferTypeAdvanced() { + return new ServerReportChannelTransferTypeAdvanced(); + } + + @Role(BeanDefinition.ROLE_INFRASTRUCTURE) + @Bean + public ServerReportConnectSuccessTypeAdvanced serverReportConnectSuccessTypeAdvanced( + ServerNettyConfigApplication serverNettyConfigApplication, + NettyClientBlacklistApplication nettyClientBlacklistApplication, + InternalNetworkPenetrationMappingApplication internalNetworkPenetrationMappingApplication) { + return new ServerReportConnectSuccessTypeAdvanced(serverNettyConfigApplication, nettyClientBlacklistApplication, internalNetworkPenetrationMappingApplication); + } + + @Role(BeanDefinition.ROLE_INFRASTRUCTURE) + @Bean + public ServerReportDisconnectTypeAdvanced serverReportDisconnectTypeAdvanced(ServerNettyConfigApplication serverNettyConfigApplication) { + return new ServerReportDisconnectTypeAdvanced(serverNettyConfigApplication); + } + + @Role(BeanDefinition.ROLE_INFRASTRUCTURE) + @Bean + public ServerReportSingleClientCloseVisitorTypeAdvanced serverReportSingleClientCloseVisitorTypeAdvanced() { + return new ServerReportSingleClientCloseVisitorTypeAdvanced(); + } + + @Role(BeanDefinition.ROLE_INFRASTRUCTURE) + @Bean + public ServerReportSingleClientRealConnectTypeAdvanced serverReportSingleClientRealConnectTypeAdvanced() { + return new ServerReportSingleClientRealConnectTypeAdvanced(); + } + + @Role(BeanDefinition.ROLE_INFRASTRUCTURE) + @Bean + public ServerReportStagingClosedTypeAdvanced serverReportStagingClosedTypeAdvanced(ServerNettyConfigApplication serverNettyConfigApplication) { + return new ServerReportStagingClosedTypeAdvanced(serverNettyConfigApplication); + } + + @Role(BeanDefinition.ROLE_INFRASTRUCTURE) + @Bean + public ServerReportStagingOpenedTypeAdvanced serverReportStagingOpenedTypeAdvanced(ServerNettyConfigApplication serverNettyConfigApplication) { + return new ServerReportStagingOpenedTypeAdvanced(serverNettyConfigApplication); + } + + +} diff --git a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/netty/config/AutoConfiguration.java b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/netty/config/ServerAutoConfiguration.java similarity index 91% rename from wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/netty/config/AutoConfiguration.java rename to wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/netty/config/ServerAutoConfiguration.java index 31b5721..7bbbd70 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/netty/config/AutoConfiguration.java +++ b/wu-lazy-cloud-heartbeat-server/src/main/java/wu/framework/lazy/cloud/heartbeat/server/netty/config/ServerAutoConfiguration.java @@ -22,14 +22,14 @@ import java.util.concurrent.TimeUnit; */ @Slf4j @Configuration -public class AutoConfiguration implements CommandLineRunner { +public class ServerAutoConfiguration implements CommandLineRunner { private final ServerProperties serverProperties; private final NettyServerFilter nettyServerFilter; ThreadPoolExecutor NETTY_SERVER_EXECUTOR = new ThreadPoolExecutor(1, 1, 200, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<>(1)); - public AutoConfiguration(ServerProperties serverProperties, NettyServerFilter nettyServerFilter) { + public ServerAutoConfiguration(ServerProperties serverProperties, NettyServerFilter nettyServerFilter) { this.serverProperties = serverProperties; this.nettyServerFilter = nettyServerFilter; } diff --git a/wu-lazy-cloud-heartbeat-server/src/main/resources/META-INF/spring.factories b/wu-lazy-cloud-heartbeat-server/src/main/resources/META-INF/spring.factories index 17d27dd..7c55e77 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/resources/META-INF/spring.factories +++ b/wu-lazy-cloud-heartbeat-server/src/main/resources/META-INF/spring.factories @@ -1,3 +1,5 @@ # Auto Configure org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ -wu.framework.lazy.cloud.heartbeat.server.EnableHeartbeatServerAutoConfiguration +wu.framework.lazy.cloud.heartbeat.server.EnableHeartbeatServerAutoConfiguration,\ +wu.framework.lazy.cloud.heartbeat.server.netty.config.HeartbeatServerConfiguration,\ +wu.framework.lazy.cloud.heartbeat.server.netty.config.ServerAutoConfiguration diff --git a/wu-lazy-cloud-heartbeat-server/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/wu-lazy-cloud-heartbeat-server/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index a36863c..0cfe589 100644 --- a/wu-lazy-cloud-heartbeat-server/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/wu-lazy-cloud-heartbeat-server/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1 +1,3 @@ wu.framework.lazy.cloud.heartbeat.server.EnableHeartbeatServerAutoConfiguration +wu.framework.lazy.cloud.heartbeat.server.netty.config.HeartbeatServerConfiguration +wu.framework.lazy.cloud.heartbeat.server.netty.config.ServerAutoConfiguration