diff --git a/deployer/src/main/java/com/alibaba/otter/canal/deployer/CanalController.java b/deployer/src/main/java/com/alibaba/otter/canal/deployer/CanalController.java index 28ce556d..a5ff5b8f 100644 --- a/deployer/src/main/java/com/alibaba/otter/canal/deployer/CanalController.java +++ b/deployer/src/main/java/com/alibaba/otter/canal/deployer/CanalController.java @@ -192,10 +192,10 @@ public class CanalController { instanceConfigs.put(destination, config); } - if (!config.getLazy() && !embededCanalServer.isStart(destination)) { + if (!embededCanalServer.isStart(destination)) { // HA机制启动 ServerRunningMonitor runningMonitor = ServerRunningMonitors.getRunningMonitor(destination); - if (!runningMonitor.isStart()) { + if (!config.getLazy() && !runningMonitor.isStart()) { runningMonitor.start(); } } @@ -392,10 +392,10 @@ public class CanalController { final String destination = entry.getKey(); InstanceConfig config = entry.getValue(); // 创建destination的工作节点 - if (!config.getLazy() && !embededCanalServer.isStart(destination)) { + if (!embededCanalServer.isStart(destination)) { // HA机制启动 ServerRunningMonitor runningMonitor = ServerRunningMonitors.getRunningMonitor(destination); - if (!runningMonitor.isStart()) { + if (!config.getLazy() && !runningMonitor.isStart()) { runningMonitor.start(); } } diff --git a/server/src/main/java/com/alibaba/otter/canal/server/netty/handler/SessionHandler.java b/server/src/main/java/com/alibaba/otter/canal/server/netty/handler/SessionHandler.java index 4cefb90c..3eda5a0d 100644 --- a/server/src/main/java/com/alibaba/otter/canal/server/netty/handler/SessionHandler.java +++ b/server/src/main/java/com/alibaba/otter/canal/server/netty/handler/SessionHandler.java @@ -66,7 +66,7 @@ public class SessionHandler extends SimpleChannelHandler { Short.valueOf(sub.getClientId()), sub.getFilter()); MDC.put("destination", clientIdentity.getDestination()); - + // 尝试启动,如果已经启动,忽略 if (!embeddedServer.isStart(clientIdentity.getDestination())) { ServerRunningMonitor runningMonitor = ServerRunningMonitors.getRunningMonitor(clientIdentity.getDestination()); @@ -74,9 +74,8 @@ public class SessionHandler extends SimpleChannelHandler { runningMonitor.start(); } } - - embeddedServer.subscribe(clientIdentity); + embeddedServer.subscribe(clientIdentity); ctx.setAttachment(clientIdentity);// 设置状态数据 NettyUtils.ack(ctx.getChannel(), null); } else {