From 479d5c5ac59beab63664e02b2c15d8ca22bb3bfd Mon Sep 17 00:00:00 2001 From: byteblogs168 <598092184@qq.com> Date: Thu, 14 Mar 2024 22:12:41 +0800 Subject: [PATCH] =?UTF-8?q?feat:=203.1.1=201.=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=E9=87=8D=E8=BF=9E=E9=80=BB=E8=BE=91?= =?UTF-8?q?=202.=20=E6=96=B0=E5=A2=9Enetty=E9=87=8D=E8=BF=9E=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E3=80=81=E7=B3=BB=E7=BB=9F=E5=90=AF=E5=8A=A8=E5=BC=80?= =?UTF-8?q?=E5=A7=8B=E4=BA=8B=E4=BB=B6=E3=80=81=E7=B3=BB=E7=BB=9F=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E5=AE=8C=E6=88=90=E4=BA=8B=E4=BB=B6=E3=80=81=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E5=BC=80=E5=A7=8B=E5=85=B3=E9=97=AD=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E3=80=81=E7=B3=BB=E7=BB=9F=E5=85=B3=E9=97=AD=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/event/ChannelReconnectEvent.java | 15 +++++ .../common/event/EasyRetryClosedEvent.java | 16 +++++ .../common/event/EasyRetryClosingEvent.java | 16 +++++ .../common/event/EasyRetryStartedEvent.java | 16 +++++ .../common/event/EasyRetryStartingEvent.java | 16 +++++ ...tener.java => EasyRetryCloseListener.java} | 8 ++- .../common/init/EasyRetryStartListener.java | 6 +- .../client/common/netty/NettyChannel.java | 59 +++++++++++++++++-- .../common/netty/NettyHttpClientHandler.java | 4 ++ .../common/netty/NettyHttpConnectClient.java | 9 ++- pom.xml | 2 +- 11 files changed, 155 insertions(+), 12 deletions(-) create mode 100644 easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/ChannelReconnectEvent.java create mode 100644 easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/EasyRetryClosedEvent.java create mode 100644 easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/EasyRetryClosingEvent.java create mode 100644 easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/EasyRetryStartedEvent.java create mode 100644 easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/EasyRetryStartingEvent.java rename easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/init/{EasyRetryEndListener.java => EasyRetryCloseListener.java} (65%) diff --git a/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/ChannelReconnectEvent.java b/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/ChannelReconnectEvent.java new file mode 100644 index 000000000..e62611c4b --- /dev/null +++ b/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/ChannelReconnectEvent.java @@ -0,0 +1,15 @@ +package com.aizuda.easy.retry.client.common.event; + +import org.springframework.context.ApplicationEvent; + +/** + * @author xiaowoniu + * @date 2024-03-14 21:17:55 + * @since 3.1.1 + */ +public class ChannelReconnectEvent extends ApplicationEvent { + private static final String SOURCE = "ChannelReconnect"; + public ChannelReconnectEvent() { + super(SOURCE); + } +} diff --git a/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/EasyRetryClosedEvent.java b/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/EasyRetryClosedEvent.java new file mode 100644 index 000000000..aca097c08 --- /dev/null +++ b/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/EasyRetryClosedEvent.java @@ -0,0 +1,16 @@ +package com.aizuda.easy.retry.client.common.event; + +import org.springframework.context.ApplicationEvent; + +/** + * @author xiaowoniu + * @date 2024-03-14 21:23:29 + * @since 3.1.0 + */ +public class EasyRetryClosedEvent extends ApplicationEvent { + private static final String SOURCE = "EasyRetryClosed"; + + public EasyRetryClosedEvent() { + super(SOURCE); + } +} diff --git a/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/EasyRetryClosingEvent.java b/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/EasyRetryClosingEvent.java new file mode 100644 index 000000000..95cfc65dd --- /dev/null +++ b/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/EasyRetryClosingEvent.java @@ -0,0 +1,16 @@ +package com.aizuda.easy.retry.client.common.event; + +import org.springframework.context.ApplicationEvent; + +/** + * @author xiaowoniu + * @date 2024-03-14 21:23:29 + * @since 3.1.0 + */ +public class EasyRetryClosingEvent extends ApplicationEvent { + private static final String SOURCE = "EasyRetryClosing"; + + public EasyRetryClosingEvent() { + super(SOURCE); + } +} diff --git a/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/EasyRetryStartedEvent.java b/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/EasyRetryStartedEvent.java new file mode 100644 index 000000000..f7cd1b000 --- /dev/null +++ b/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/EasyRetryStartedEvent.java @@ -0,0 +1,16 @@ +package com.aizuda.easy.retry.client.common.event; + +import org.springframework.context.ApplicationEvent; + +/** + * @author xiaowoniu + * @date 2024-03-14 21:23:29 + * @since 3.1.0 + */ +public class EasyRetryStartedEvent extends ApplicationEvent { + private static final String SOURCE = "EasyRetryStarted"; + + public EasyRetryStartedEvent() { + super(SOURCE); + } +} diff --git a/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/EasyRetryStartingEvent.java b/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/EasyRetryStartingEvent.java new file mode 100644 index 000000000..6b95627a7 --- /dev/null +++ b/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/event/EasyRetryStartingEvent.java @@ -0,0 +1,16 @@ +package com.aizuda.easy.retry.client.common.event; + +import org.springframework.context.ApplicationEvent; + +/** + * @author xiaowoniu + * @date 2024-03-14 21:23:29 + * @since 3.1.0 + */ +public class EasyRetryStartingEvent extends ApplicationEvent { + private static final String SOURCE = "EasyRetryStarting"; + + public EasyRetryStartingEvent() { + super(SOURCE); + } +} diff --git a/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/init/EasyRetryEndListener.java b/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/init/EasyRetryCloseListener.java similarity index 65% rename from easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/init/EasyRetryEndListener.java rename to easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/init/EasyRetryCloseListener.java index b19254e0f..610cba7af 100644 --- a/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/init/EasyRetryEndListener.java +++ b/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/init/EasyRetryCloseListener.java @@ -1,6 +1,10 @@ package com.aizuda.easy.retry.client.common.init; import com.aizuda.easy.retry.client.common.Lifecycle; +import com.aizuda.easy.retry.client.common.event.EasyRetryClosedEvent; +import com.aizuda.easy.retry.client.common.event.EasyRetryClosingEvent; +import com.aizuda.easy.retry.client.common.event.EasyRetryStartingEvent; +import com.aizuda.easy.retry.common.core.context.SpringContext; import com.aizuda.easy.retry.common.core.util.EasyRetryVersion; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -19,7 +23,7 @@ import java.util.List; */ @Component @Slf4j -public class EasyRetryEndListener implements ApplicationListener { +public class EasyRetryCloseListener implements ApplicationListener { @Autowired private List lifecycleList; @@ -27,7 +31,9 @@ public class EasyRetryEndListener implements ApplicationListener { try { + // 抛出重连事件 + SpringContext.CONTEXT.publishEvent(new ChannelReconnectEvent()); nettyHttpConnectClient.reconnect(); } catch (Exception e) { EasyRetryLog.LOCAL.error("reconnect error ", e); diff --git a/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/netty/NettyHttpConnectClient.java b/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/netty/NettyHttpConnectClient.java index 4557c6f1f..cae6f6542 100644 --- a/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/netty/NettyHttpConnectClient.java +++ b/easy-retry-client/easy-retry-client-common/src/main/java/com/aizuda/easy/retry/client/common/netty/NettyHttpConnectClient.java @@ -42,13 +42,10 @@ public class NettyHttpConnectClient implements Lifecycle, ApplicationContextAwar public void start() { try { - EasyRetryProperties easyRetryProperties = applicationContext.getBean(EasyRetryProperties.class); - - EasyRetryProperties.ServerConfig server = easyRetryProperties.getServer(); final NettyHttpConnectClient thisClient = this; bootstrap.group(nioEventLoopGroup) .channel(NioSocketChannel.class) - .remoteAddress(server.getHost(), server.getPort()) + .remoteAddress(NettyChannel.getServerHost(), NettyChannel.getServerPort()) .handler(new ChannelInitializer() { @Override public void initChannel(SocketChannel channel) throws Exception { @@ -108,7 +105,9 @@ public class NettyHttpConnectClient implements Lifecycle, ApplicationContextAwar * 重连 */ public void reconnect() { - ChannelFuture channelFuture = bootstrap.connect(); + ChannelFuture channelFuture = bootstrap + .remoteAddress(NettyChannel.getServerHost(), NettyChannel.getServerPort()) + .connect(); channelFuture.addListener((ChannelFutureListener) future -> { Throwable cause = future.cause(); if (cause != null) { diff --git a/pom.xml b/pom.xml index 5a2bc9aef..8f8a85d63 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ 17 17 17 - 3.1.0 + 3.1.1-SNAPSHOT 1.0.0 4.1.94.Final 5.8.25