fix bug of repeat log manager

This commit is contained in:
yinxiu
2017-04-06 20:13:59 +08:00
parent a78622ae02
commit 6b20959a2d
7 changed files with 20 additions and 24 deletions

View File

@@ -74,10 +74,8 @@
<appender-ref ref="CANAL-META" /> <appender-ref ref="CANAL-META" />
</logger> </logger>
<root level="WARN"> <root level="INFO">
<!-- <!--<appender-ref ref="STDOUT"/>-->
<appender-ref ref="STDOUT"/>
-->
<appender-ref ref="CANAL-ROOT" /> <appender-ref ref="CANAL-ROOT" />
</root> </root>
</configuration> </configuration>

View File

@@ -43,7 +43,7 @@ public class FailbackLogPositionManager extends AbstractLogPositionManager {
} }
if (!secondary.isStart()) { if (!secondary.isStart()) {
primary.start(); secondary.start();
} }
} }

View File

@@ -40,8 +40,13 @@ public class MixedLogPositionManager extends AbstractLogPositionManager {
public void start() { public void start() {
super.start(); super.start();
memoryLogPositionManager.start(); if (!memoryLogPositionManager.isStart()) {
zooKeeperLogPositionManager.start(); memoryLogPositionManager.start();
}
if (!zooKeeperLogPositionManager.isStart()) {
zooKeeperLogPositionManager.start();
}
} }
@Override @Override

View File

@@ -45,8 +45,7 @@ public class MetaLogPositionManagerTest extends AbstractLogPositionManagerTest {
metaManager.setZooKeeperMetaManager(zooKeeperMetaManager); metaManager.setZooKeeperMetaManager(zooKeeperMetaManager);
metaManager.start(); metaManager.start();
MetaLogPositionManager logPositionManager = new MetaLogPositionManager(); MetaLogPositionManager logPositionManager = new MetaLogPositionManager(metaManager);
logPositionManager.setMetaManager(metaManager);
logPositionManager.start(); logPositionManager.start();
// 构建meta信息 // 构建meta信息
ClientIdentity client1 = new ClientIdentity(destination, (short) 1); ClientIdentity client1 = new ClientIdentity(destination, (short) 1);

View File

@@ -27,19 +27,16 @@ public class MixedLogPositionManagerTest extends AbstractLogPositionManagerTest
@Test @Test
public void testAll() { public void testAll() {
MixedLogPositionManager logPositionManager = new MixedLogPositionManager(); MemoryLogPositionManager memoryLogPositionManager = new MemoryLogPositionManager();
ZooKeeperLogPositionManager zookeeperLogPositionManager = new ZooKeeperLogPositionManager(zkclientx);
ZooKeeperLogPositionManager zookeeperLogPositionManager = new ZooKeeperLogPositionManager(); MixedLogPositionManager logPositionManager = new MixedLogPositionManager(zkclientx);
zookeeperLogPositionManager.setZkClientx(zkclientx);
logPositionManager.setZooKeeperLogPositionManager(zookeeperLogPositionManager);
logPositionManager.start(); logPositionManager.start();
LogPosition position2 = doTest(logPositionManager); LogPosition position2 = doTest(logPositionManager);
sleep(1000); sleep(1000);
MixedLogPositionManager logPositionManager2 = new MixedLogPositionManager(); MixedLogPositionManager logPositionManager2 = new MixedLogPositionManager(zkclientx);
logPositionManager2.setZooKeeperLogPositionManager(zookeeperLogPositionManager);
logPositionManager2.start(); logPositionManager2.start();
LogPosition getPosition2 = logPositionManager2.getLatestIndexBy(destination); LogPosition getPosition2 = logPositionManager2.getLatestIndexBy(destination);

View File

@@ -27,19 +27,17 @@ public class PeriodMixedLogPositionManagerTest extends AbstractLogPositionManage
@Test @Test
public void testAll() { public void testAll() {
PeriodMixedLogPositionManager logPositionManager = new PeriodMixedLogPositionManager(); MemoryLogPositionManager memoryLogPositionManager = new MemoryLogPositionManager();
ZooKeeperLogPositionManager zookeeperLogPositionManager = new ZooKeeperLogPositionManager(zkclientx);
ZooKeeperLogPositionManager zookeeperLogPositionManager = new ZooKeeperLogPositionManager(); PeriodMixedLogPositionManager logPositionManager = new PeriodMixedLogPositionManager(memoryLogPositionManager, zookeeperLogPositionManager, 1000L);
zookeeperLogPositionManager.setZkClientx(zkclientx);
logPositionManager.setZooKeeperLogPositionManager(zookeeperLogPositionManager);
logPositionManager.start(); logPositionManager.start();
LogPosition position2 = doTest(logPositionManager); LogPosition position2 = doTest(logPositionManager);
sleep(1500); sleep(1500);
PeriodMixedLogPositionManager logPositionManager2 = new PeriodMixedLogPositionManager(); PeriodMixedLogPositionManager logPositionManager2 = new PeriodMixedLogPositionManager(memoryLogPositionManager, zookeeperLogPositionManager, 1000L);
logPositionManager2.setZooKeeperLogPositionManager(zookeeperLogPositionManager);
logPositionManager2.start(); logPositionManager2.start();
LogPosition getPosition2 = logPositionManager2.getLatestIndexBy(destination); LogPosition getPosition2 = logPositionManager2.getLatestIndexBy(destination);

View File

@@ -25,8 +25,7 @@ public class ZooKeeperLogPositionManagerTest extends AbstractLogPositionManagerT
@Test @Test
public void testAll() { public void testAll() {
ZooKeeperLogPositionManager logPositionManager = new ZooKeeperLogPositionManager(); ZooKeeperLogPositionManager logPositionManager = new ZooKeeperLogPositionManager(zkclientx);
logPositionManager.setZkClientx(zkclientx);
logPositionManager.start(); logPositionManager.start();
doTest(logPositionManager); doTest(logPositionManager);