rename log manager module and ajust xml

This commit is contained in:
yinxiu
2017-03-28 20:33:14 +08:00
parent c0f2d274d7
commit a78622ae02
13 changed files with 51 additions and 51 deletions

View File

@@ -128,14 +128,14 @@
<!-- 解析位点记录 --> <!-- 解析位点记录 -->
<property name="logPositionManager"> <property name="logPositionManager">
<bean class="com.alibaba.otter.canal.parse.index.FailbackLogPositionManager"> <bean class="com.alibaba.otter.canal.parse.index.FailbackLogPositionManager">
<property name="primary"> <constructor-arg>
<bean class="com.alibaba.otter.canal.parse.index.MemoryLogPositionManager" /> <bean class="com.alibaba.otter.canal.parse.index.MemoryLogPositionManager" />
</property> </constructor-arg>
<property name="failback"> <constructor-arg>
<bean class="com.alibaba.otter.canal.parse.index.MetaLogPositionManager"> <bean class="com.alibaba.otter.canal.parse.index.MetaLogPositionManager">
<property name="metaManager" ref="metaManager" /> <constructor-arg ref="metaManager"/>
</bean> </bean>
</property> </constructor-arg>
</bean> </bean>
</property> </property>

View File

@@ -113,14 +113,14 @@
<!-- 解析位点记录 --> <!-- 解析位点记录 -->
<property name="logPositionManager"> <property name="logPositionManager">
<bean class="com.alibaba.otter.canal.parse.index.FailbackLogPositionManager"> <bean class="com.alibaba.otter.canal.parse.index.FailbackLogPositionManager">
<property name="primary"> <constructor-arg>
<bean class="com.alibaba.otter.canal.parse.index.MemoryLogPositionManager" /> <bean class="com.alibaba.otter.canal.parse.index.MemoryLogPositionManager" />
</property> </constructor-arg>
<property name="failback"> <constructor-arg>
<bean class="com.alibaba.otter.canal.parse.index.MetaLogPositionManager"> <bean class="com.alibaba.otter.canal.parse.index.MetaLogPositionManager">
<property name="metaManager" ref="metaManager" /> <constructor-arg ref="metaManager"/>
</bean> </bean>
</property> </constructor-arg>
</bean> </bean>
</property> </property>

View File

@@ -123,14 +123,14 @@
<!-- 解析位点记录 --> <!-- 解析位点记录 -->
<property name="logPositionManager"> <property name="logPositionManager">
<bean class="com.alibaba.otter.canal.parse.index.FailbackLogPositionManager"> <bean class="com.alibaba.otter.canal.parse.index.FailbackLogPositionManager">
<property name="primary"> <constructor-arg>
<bean class="com.alibaba.otter.canal.parse.index.MemoryLogPositionManager" /> <bean class="com.alibaba.otter.canal.parse.index.MemoryLogPositionManager" />
</property> </constructor-arg>
<property name="failback"> <constructor-arg>
<bean class="com.alibaba.otter.canal.parse.index.MetaLogPositionManager"> <bean class="com.alibaba.otter.canal.parse.index.MetaLogPositionManager">
<property name="metaManager" ref="metaManager" /> <constructor-arg ref="metaManager"/>
</bean> </bean>
</property> </constructor-arg>
</bean> </bean>
</property> </property>

View File

@@ -2,7 +2,7 @@ package com.alibaba.otter.canal.instance.core;
import java.util.List; import java.util.List;
import com.alibaba.otter.canal.parse.index.LogPositionManager; import com.alibaba.otter.canal.parse.index.CanalLogPositionManager;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -171,7 +171,7 @@ public class AbstractCanalInstance extends AbstractCanalLifeCycle implements Can
if (eventParser instanceof AbstractEventParser) { if (eventParser instanceof AbstractEventParser) {
AbstractEventParser abstractEventParser = (AbstractEventParser) eventParser; AbstractEventParser abstractEventParser = (AbstractEventParser) eventParser;
// 首先启动log position管理器 // 首先启动log position管理器
LogPositionManager logPositionManager = abstractEventParser.getLogPositionManager(); CanalLogPositionManager logPositionManager = abstractEventParser.getLogPositionManager();
if (!logPositionManager.isStart()) { if (!logPositionManager.isStart()) {
logPositionManager.start(); logPositionManager.start();
} }
@@ -196,7 +196,7 @@ public class AbstractCanalInstance extends AbstractCanalLifeCycle implements Can
if (eventParser instanceof AbstractEventParser) { if (eventParser instanceof AbstractEventParser) {
AbstractEventParser abstractEventParser = (AbstractEventParser) eventParser; AbstractEventParser abstractEventParser = (AbstractEventParser) eventParser;
// 首先启动log position管理器 // 首先启动log position管理器
LogPositionManager logPositionManager = abstractEventParser.getLogPositionManager(); CanalLogPositionManager logPositionManager = abstractEventParser.getLogPositionManager();
if (logPositionManager.isStart()) { if (logPositionManager.isStart()) {
logPositionManager.stop(); logPositionManager.stop();
} }

View File

@@ -338,10 +338,10 @@ public class CanalInstanceWithManager extends AbstractCanalInstance {
return haController; return haController;
} }
protected LogPositionManager initLogPositionManager() { protected CanalLogPositionManager initLogPositionManager() {
logger.info("init logPositionPersistManager begin..."); logger.info("init logPositionPersistManager begin...");
IndexMode indexMode = parameters.getIndexMode(); IndexMode indexMode = parameters.getIndexMode();
LogPositionManager logPositionManager; CanalLogPositionManager logPositionManager;
if (indexMode.isMemory()) { if (indexMode.isMemory()) {
logPositionManager = new MemoryLogPositionManager(); logPositionManager = new MemoryLogPositionManager();
} else if (indexMode.isZookeeper()) { } else if (indexMode.isZookeeper()) {
@@ -356,7 +356,7 @@ public class CanalInstanceWithManager extends AbstractCanalInstance {
MemoryLogPositionManager primary = new MemoryLogPositionManager(); MemoryLogPositionManager primary = new MemoryLogPositionManager();
MetaLogPositionManager secondary = new MetaLogPositionManager(metaManager); MetaLogPositionManager secondary = new MetaLogPositionManager(metaManager);
logPositionManager = new FailoverLogPositionManager(primary, secondary); logPositionManager = new FailbackLogPositionManager(primary, secondary);
} else { } else {
throw new CanalException("unsupport indexMode for " + indexMode); throw new CanalException("unsupport indexMode for " + indexMode);
} }

View File

@@ -120,14 +120,14 @@
<!-- 解析位点记录 --> <!-- 解析位点记录 -->
<property name="logPositionManager"> <property name="logPositionManager">
<bean class="com.alibaba.otter.canal.parse.index.FailbackLogPositionManager"> <bean class="com.alibaba.otter.canal.parse.index.FailbackLogPositionManager">
<property name="primary"> <constructor-arg>
<bean class="com.alibaba.otter.canal.parse.index.MemoryLogPositionManager" /> <bean class="com.alibaba.otter.canal.parse.index.MemoryLogPositionManager" />
</property> </constructor-arg>
<property name="failback"> <constructor-arg>
<bean class="com.alibaba.otter.canal.parse.index.MetaLogPositionManager"> <bean class="com.alibaba.otter.canal.parse.index.MetaLogPositionManager">
<property name="metaManager" ref="metaManager" /> <constructor-arg ref="metaManager"/>
</bean> </bean>
</property> </constructor-arg>
</bean> </bean>
</property> </property>

View File

@@ -102,18 +102,20 @@
<!-- 解析编码 --> <!-- 解析编码 -->
<!-- property name="connectionCharsetNumber" value="${canal.instance.connectionCharsetNumber:33}" /--> <!-- property name="connectionCharsetNumber" value="${canal.instance.connectionCharsetNumber:33}" /-->
<property name="connectionCharset" value="${canal.instance.connectionCharset:UTF-8}" /> <property name="connectionCharset" value="${canal.instance.connectionCharset:UTF-8}" />
<!-- 解析位点记录 --> <!-- 解析位点记录 -->
<property name="logPositionManager"> <property name="logPositionManager">
<bean class="com.alibaba.otter.canal.parse.index.FailbackLogPositionManager"> <bean class="com.alibaba.otter.canal.parse.index.FailbackLogPositionManager">
<property name="primary"> <constructor-arg>
<bean class="com.alibaba.otter.canal.parse.index.MemoryLogPositionManager" /> <bean class="com.alibaba.otter.canal.parse.index.MemoryLogPositionManager" />
</property> </constructor-arg>
<property name="failback"> <constructor-arg>
<bean class="com.alibaba.otter.canal.parse.index.MetaLogPositionManager"> <bean class="com.alibaba.otter.canal.parse.index.MetaLogPositionManager">
<property name="metaManager" ref="metaManager" /> <constructor-arg>
<ref bean="metaManager"/>
</constructor-arg>
</bean> </bean>
</property> </constructor-arg>
</bean> </bean>
</property> </property>

View File

@@ -8,7 +8,7 @@ import java.util.TimerTask;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicLong;
import com.alibaba.otter.canal.parse.index.LogPositionManager; import com.alibaba.otter.canal.parse.index.CanalLogPositionManager;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.exception.ExceptionUtils; import org.apache.commons.lang.exception.ExceptionUtils;
import org.apache.commons.lang.math.RandomUtils; import org.apache.commons.lang.math.RandomUtils;
@@ -44,7 +44,7 @@ public abstract class AbstractEventParser<EVENT> extends AbstractCanalLifeCycle
protected final Logger logger = LoggerFactory.getLogger(this.getClass()); protected final Logger logger = LoggerFactory.getLogger(this.getClass());
protected LogPositionManager logPositionManager = null; protected CanalLogPositionManager logPositionManager = null;
protected CanalEventSink<List<CanalEntry.Entry>> eventSink = null; protected CanalEventSink<List<CanalEntry.Entry>> eventSink = null;
protected CanalEventFilter eventFilter = null; protected CanalEventFilter eventFilter = null;
protected CanalEventFilter eventBlackFilter = null; protected CanalEventFilter eventBlackFilter = null;
@@ -495,7 +495,7 @@ public abstract class AbstractEventParser<EVENT> extends AbstractCanalLifeCycle
return this.alarmHandler; return this.alarmHandler;
} }
public void setLogPositionManager(LogPositionManager logPositionManager) { public void setLogPositionManager(CanalLogPositionManager logPositionManager) {
this.logPositionManager = logPositionManager; this.logPositionManager = logPositionManager;
} }
@@ -503,7 +503,7 @@ public abstract class AbstractEventParser<EVENT> extends AbstractCanalLifeCycle
this.transactionSize = transactionSize; this.transactionSize = transactionSize;
} }
public LogPositionManager getLogPositionManager() { public CanalLogPositionManager getLogPositionManager() {
return logPositionManager; return logPositionManager;
} }

View File

@@ -2,7 +2,7 @@ package com.alibaba.otter.canal.parse.inbound.mysql;
import java.io.IOException; import java.io.IOException;
import com.alibaba.otter.canal.parse.index.LogPositionManager; import com.alibaba.otter.canal.parse.index.CanalLogPositionManager;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import com.alibaba.otter.canal.parse.CanalEventParser; import com.alibaba.otter.canal.parse.CanalEventParser;
@@ -150,7 +150,7 @@ public class LocalBinlogEventParser extends AbstractMysqlEventParser implements
// ========================= setter / getter ========================= // ========================= setter / getter =========================
public void setLogPositionManager(LogPositionManager logPositionManager) { public void setLogPositionManager(CanalLogPositionManager logPositionManager) {
this.logPositionManager = logPositionManager; this.logPositionManager = logPositionManager;
} }

View File

@@ -6,5 +6,5 @@ import com.alibaba.otter.canal.common.AbstractCanalLifeCycle;
* Created by yinxiu on 17/3/17. * Created by yinxiu on 17/3/17.
* Email: marklin.hz@gmail.com * Email: marklin.hz@gmail.com
*/ */
public abstract class AbstractLogPositionManager extends AbstractCanalLifeCycle implements LogPositionManager { public abstract class AbstractLogPositionManager extends AbstractCanalLifeCycle implements CanalLogPositionManager {
} }

View File

@@ -8,7 +8,7 @@ import com.alibaba.otter.canal.protocol.position.LogPosition;
* Created by yinxiu on 17/3/17. * Created by yinxiu on 17/3/17.
* Email: marklin.hz@gmail.com * Email: marklin.hz@gmail.com
*/ */
public interface LogPositionManager extends CanalLifeCycle { public interface CanalLogPositionManager extends CanalLifeCycle {
LogPosition getLatestIndexBy(String destination); LogPosition getLatestIndexBy(String destination);

View File

@@ -15,14 +15,14 @@ import org.slf4j.LoggerFactory;
* 应用场景:比如针对内存buffer,出现HA切换,先尝试从内存buffer区中找到lastest position,如果不存在才尝试找一下meta里消费的信息 * 应用场景:比如针对内存buffer,出现HA切换,先尝试从内存buffer区中找到lastest position,如果不存在才尝试找一下meta里消费的信息
* </pre> * </pre>
*/ */
public class FailoverLogPositionManager extends AbstractLogPositionManager { public class FailbackLogPositionManager extends AbstractLogPositionManager {
private final static Logger logger = LoggerFactory.getLogger(FailoverLogPositionManager.class); private final static Logger logger = LoggerFactory.getLogger(FailbackLogPositionManager.class);
private final LogPositionManager primary; private final CanalLogPositionManager primary;
private final LogPositionManager secondary; private final CanalLogPositionManager secondary;
public FailoverLogPositionManager(LogPositionManager primary, LogPositionManager secondary) { public FailbackLogPositionManager(CanalLogPositionManager primary, CanalLogPositionManager secondary) {
if (primary == null) { if (primary == null) {
throw new NullPointerException("nul primary LogPositionManager"); throw new NullPointerException("nul primary LogPositionManager");
} }

View File

@@ -26,17 +26,15 @@ public class FileMixedLogPositionManagerTest extends AbstractLogPositionManagerT
@Test @Test
public void testAll() { public void testAll() {
FileMixedLogPositionManager logPositionManager = new FileMixedLogPositionManager(); MemoryLogPositionManager memoryLogPositionManager = new MemoryLogPositionManager();
logPositionManager.setDataDir(dataDir);
logPositionManager.setPeriod(100); FileMixedLogPositionManager logPositionManager = new FileMixedLogPositionManager(dataDir, 1000, memoryLogPositionManager);
logPositionManager.start(); logPositionManager.start();
LogPosition position2 = doTest(logPositionManager); LogPosition position2 = doTest(logPositionManager);
sleep(1500); sleep(1500);
FileMixedLogPositionManager logPositionManager2 = new FileMixedLogPositionManager(); FileMixedLogPositionManager logPositionManager2 = new FileMixedLogPositionManager(dataDir, 1000, memoryLogPositionManager);
logPositionManager2.setDataDir(dataDir);
logPositionManager2.setPeriod(100);
logPositionManager2.start(); logPositionManager2.start();
LogPosition getPosition2 = logPositionManager2.getLatestIndexBy(destination); LogPosition getPosition2 = logPositionManager2.getLatestIndexBy(destination);