canal无法往kafka同步,报错TimeoutException: Failed to update metadata after 60000 ms

14 篇文章 1 订阅
11 篇文章 3 订阅

一 问题描述

canal往kafka同步报错,数据无法同步。

canal instance报错:ERROR com.alibaba.otter.canal.kafka.CanalKafkaProducer - java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms

canal server也有报错:WARN org.apache.kafka.clients.NetworkClient - [Producer clientId=producer-2] Error while fetching metadata with correlation id 2681 : {=INVALID_TOPIC_EXCEPTION}

二 解决办法

① 检查kafka是否正常启动

② 检查kafka服务器端口是否开放

③ 检查/etc/hosts文件中是否包含ip与主机名对应关系

④ 检查下canal instance里是否有配置canal.mq.topic。假如canal.instance.filter.query.dml为false,则必须显示指定canal.mq.topic的值

⑤ 检查topic是否有问题,尝试重建下topic

⑥ canal版本升级了(由1.1.4升级到1.1.5,且kafka中存在用.分隔的topic)

1.1.5 canal不支持往kafka中用.分隔的 topic进行同步,canal会自动将topic名称中的.转为为_,示例:

#以下是canal instance的配置

# table regex
canal.instance.filter.regex=baidd.t1
# mq config
canal.mq.topic=baidd
# dynamic topic route by schema or table regex
canal.mq.dynamicTopic=baidd.t1

canal会自动往名称为baidd_t1的topic中进行同步,倘若kafka中不存在baidd.t1,会自动创建baidd_t1,但倘若存在baidd.t1,会导致canal无法继续同步,也不会自动创建baidd_t1,canal server报错:

canal instance报错:ERROR com.alibaba.otter.canal.kafka.CanalKafkaProducer - java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms

canal server也有报错:WARN org.apache.kafka.clients.NetworkClient - [Producer clientId=producer-2] Error while fetching metadata with correlation id 2681 : {baidd_t1=INVALID_TOPIC_EXCEPTION}

解决办法:

删掉kafka里现有带点的topic,这里是baidd.t1,改程序代码,将topic中的.改为_

注意:无须改动canal instance里的canal.mq.dynamicTopic,还用.分隔即可,我试验发现改成_,反而影响数据同步

 

--本篇文章参考了https://github.com/alibaba/canal/issues/2974

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值