开发者社区> 问答> 正文

解析位点记录使用FileMixedLogPositionManager时,启动不了

版本:1.1.0 mysql:5.6.36

所有配置只修改两处,一个是example中配置的mysql的ip:port,另外一处就是spring/file-instance.xml ,如下:

<property name="logPositionManager">
    <bean class="com.alibaba.otter.canal.parse.index.FailbackLogPositionManager">
        <constructor-arg>
            <bean class="com.alibaba.otter.canal.parse.index.FileMixedLogPositionManager" >
                <constructor-arg index="0" value="/tmp/parse.dat" />
                <constructor-arg index="1" value="2000" />
                <constructor-arg index="2" ref="memoryLogPositionManager"/>
            </bean>
        </constructor-arg>
        <constructor-arg>
            <bean class="com.alibaba.otter.canal.parse.index.MetaLogPositionManager">
                <constructor-arg ref="metaManager"/>
            </bean>
        </constructor-arg>
    </bean>
</property>

memoryLogPositionManager定义:

报错如下:

2018-10-12 15:46:57.245 [destination = example , address = /127.0.0.1:3307 , EventParser] ERROR c.a.o.c.p.inbound.mysql.rds.RdsBinlogEventParserProxy - dump address /127.0.0.1:3307 has an error, retrying. caused by java.lang.NullPointerException: null at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPositionInternal(MysqlEventParser.java:480) ~[canal.parse-1.1.0.jar:na] at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPosition(MysqlEventParser.java:362) ~[canal.parse-1.1.0.jar:na] at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:182) ~[canal.parse-1.1.0.jar:na] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_171] 2018-10-12 15:46:57.258 [destination = example , address = /127.0.0.1:3307 , EventParser] ERROR com.alibaba.otter.canal.common.alarm.LogAlarmHandler - destination:example[java.lang.NullPointerException at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPositionInternal(MysqlEventParser.java:480) at com.alibaba.otter.canal.parse.inbound.mysql.MysqlEventParser.findStartPosition(MysqlEventParser.java:362) at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:182) at java.lang.Thread.run(Thread.java:748) ]

spring的原本配置:(保持原本配置,此时启动一切正常)

<property name="logPositionManager">
    <bean class="com.alibaba.otter.canal.parse.index.FailbackLogPositionManager">
        <constructor-arg>
            <bean class="com.alibaba.otter.canal.parse.index.MemoryLogPositionManager" />
        </constructor-arg>
        <constructor-arg>
            <bean class="com.alibaba.otter.canal.parse.index.MetaLogPositionManager">
                <constructor-arg ref="metaManager"/>
            </bean>
        </constructor-arg>
    </bean>
</property>

原提问者GitHub用户naruto-june

展开
收起
Java工程师 2023-05-08 19:05:08 103 0
1 条回答
写回答
取消 提交回答
  • com.alibaba.otter.canal.parse.index.FileMixedLogPositionManager这里要求dataDir是一个根路径,查找dat文件时,会是这样的一个路径 dataDir + /$destination$/ + parse.dat,你的路径构造错了

    原回答者GitHub用户agapple

    2023-05-09 19:05:08
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
神龙云服务器产品及技术深度解析 立即下载
弹性创造价值:基于ECS的最佳性价比实践解析 立即下载
又快又稳:阿里云下一代虚拟交换机解析 立即下载

相关镜像