diff --git a/deployer/src/main/resources/logback.xml b/deployer/src/main/resources/logback.xml index 0d34e3f5..73a3693b 100644 --- a/deployer/src/main/resources/logback.xml +++ b/deployer/src/main/resources/logback.xml @@ -74,10 +74,8 @@ - - + + \ No newline at end of file diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/index/FailbackLogPositionManager.java b/parse/src/main/java/com/alibaba/otter/canal/parse/index/FailbackLogPositionManager.java index fd2066f6..aecfb2a9 100644 --- a/parse/src/main/java/com/alibaba/otter/canal/parse/index/FailbackLogPositionManager.java +++ b/parse/src/main/java/com/alibaba/otter/canal/parse/index/FailbackLogPositionManager.java @@ -43,7 +43,7 @@ public class FailbackLogPositionManager extends AbstractLogPositionManager { } if (!secondary.isStart()) { - primary.start(); + secondary.start(); } } diff --git a/parse/src/main/java/com/alibaba/otter/canal/parse/index/MixedLogPositionManager.java b/parse/src/main/java/com/alibaba/otter/canal/parse/index/MixedLogPositionManager.java index 1e36c6e7..b60eb789 100644 --- a/parse/src/main/java/com/alibaba/otter/canal/parse/index/MixedLogPositionManager.java +++ b/parse/src/main/java/com/alibaba/otter/canal/parse/index/MixedLogPositionManager.java @@ -40,8 +40,13 @@ public class MixedLogPositionManager extends AbstractLogPositionManager { public void start() { super.start(); - memoryLogPositionManager.start(); - zooKeeperLogPositionManager.start(); + if (!memoryLogPositionManager.isStart()) { + memoryLogPositionManager.start(); + } + + if (!zooKeeperLogPositionManager.isStart()) { + zooKeeperLogPositionManager.start(); + } } @Override diff --git a/parse/src/test/java/com/alibaba/otter/canal/parse/index/MetaLogPositionManagerTest.java b/parse/src/test/java/com/alibaba/otter/canal/parse/index/MetaLogPositionManagerTest.java index 3ef39747..002d1741 100644 --- a/parse/src/test/java/com/alibaba/otter/canal/parse/index/MetaLogPositionManagerTest.java +++ b/parse/src/test/java/com/alibaba/otter/canal/parse/index/MetaLogPositionManagerTest.java @@ -45,8 +45,7 @@ public class MetaLogPositionManagerTest extends AbstractLogPositionManagerTest { metaManager.setZooKeeperMetaManager(zooKeeperMetaManager); metaManager.start(); - MetaLogPositionManager logPositionManager = new MetaLogPositionManager(); - logPositionManager.setMetaManager(metaManager); + MetaLogPositionManager logPositionManager = new MetaLogPositionManager(metaManager); logPositionManager.start(); // 构建meta信息 ClientIdentity client1 = new ClientIdentity(destination, (short) 1); diff --git a/parse/src/test/java/com/alibaba/otter/canal/parse/index/MixedLogPositionManagerTest.java b/parse/src/test/java/com/alibaba/otter/canal/parse/index/MixedLogPositionManagerTest.java index 61ab0409..9a59f257 100644 --- a/parse/src/test/java/com/alibaba/otter/canal/parse/index/MixedLogPositionManagerTest.java +++ b/parse/src/test/java/com/alibaba/otter/canal/parse/index/MixedLogPositionManagerTest.java @@ -27,19 +27,16 @@ public class MixedLogPositionManagerTest extends AbstractLogPositionManagerTest @Test public void testAll() { - MixedLogPositionManager logPositionManager = new MixedLogPositionManager(); + MemoryLogPositionManager memoryLogPositionManager = new MemoryLogPositionManager(); + ZooKeeperLogPositionManager zookeeperLogPositionManager = new ZooKeeperLogPositionManager(zkclientx); - ZooKeeperLogPositionManager zookeeperLogPositionManager = new ZooKeeperLogPositionManager(); - zookeeperLogPositionManager.setZkClientx(zkclientx); - - logPositionManager.setZooKeeperLogPositionManager(zookeeperLogPositionManager); + MixedLogPositionManager logPositionManager = new MixedLogPositionManager(zkclientx); logPositionManager.start(); LogPosition position2 = doTest(logPositionManager); sleep(1000); - MixedLogPositionManager logPositionManager2 = new MixedLogPositionManager(); - logPositionManager2.setZooKeeperLogPositionManager(zookeeperLogPositionManager); + MixedLogPositionManager logPositionManager2 = new MixedLogPositionManager(zkclientx); logPositionManager2.start(); LogPosition getPosition2 = logPositionManager2.getLatestIndexBy(destination); diff --git a/parse/src/test/java/com/alibaba/otter/canal/parse/index/PeriodMixedLogPositionManagerTest.java b/parse/src/test/java/com/alibaba/otter/canal/parse/index/PeriodMixedLogPositionManagerTest.java index 05df10a6..41d4a6b3 100644 --- a/parse/src/test/java/com/alibaba/otter/canal/parse/index/PeriodMixedLogPositionManagerTest.java +++ b/parse/src/test/java/com/alibaba/otter/canal/parse/index/PeriodMixedLogPositionManagerTest.java @@ -27,19 +27,17 @@ public class PeriodMixedLogPositionManagerTest extends AbstractLogPositionManage @Test public void testAll() { - PeriodMixedLogPositionManager logPositionManager = new PeriodMixedLogPositionManager(); + MemoryLogPositionManager memoryLogPositionManager = new MemoryLogPositionManager(); + ZooKeeperLogPositionManager zookeeperLogPositionManager = new ZooKeeperLogPositionManager(zkclientx); - ZooKeeperLogPositionManager zookeeperLogPositionManager = new ZooKeeperLogPositionManager(); - zookeeperLogPositionManager.setZkClientx(zkclientx); + PeriodMixedLogPositionManager logPositionManager = new PeriodMixedLogPositionManager(memoryLogPositionManager, zookeeperLogPositionManager, 1000L); - logPositionManager.setZooKeeperLogPositionManager(zookeeperLogPositionManager); logPositionManager.start(); LogPosition position2 = doTest(logPositionManager); sleep(1500); - PeriodMixedLogPositionManager logPositionManager2 = new PeriodMixedLogPositionManager(); - logPositionManager2.setZooKeeperLogPositionManager(zookeeperLogPositionManager); + PeriodMixedLogPositionManager logPositionManager2 = new PeriodMixedLogPositionManager(memoryLogPositionManager, zookeeperLogPositionManager, 1000L); logPositionManager2.start(); LogPosition getPosition2 = logPositionManager2.getLatestIndexBy(destination); diff --git a/parse/src/test/java/com/alibaba/otter/canal/parse/index/ZooKeeperLogPositionManagerTest.java b/parse/src/test/java/com/alibaba/otter/canal/parse/index/ZooKeeperLogPositionManagerTest.java index 78f25339..0f640a49 100644 --- a/parse/src/test/java/com/alibaba/otter/canal/parse/index/ZooKeeperLogPositionManagerTest.java +++ b/parse/src/test/java/com/alibaba/otter/canal/parse/index/ZooKeeperLogPositionManagerTest.java @@ -25,8 +25,7 @@ public class ZooKeeperLogPositionManagerTest extends AbstractLogPositionManagerT @Test public void testAll() { - ZooKeeperLogPositionManager logPositionManager = new ZooKeeperLogPositionManager(); - logPositionManager.setZkClientx(zkclientx); + ZooKeeperLogPositionManager logPositionManager = new ZooKeeperLogPositionManager(zkclientx); logPositionManager.start(); doTest(logPositionManager);