使用1.1.4版本canal,创建3个实例。重启后其中一个实例会报错 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; 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是正常的;
原提问者GitHub用户yutaoChina
我是这样降Kafka版本的
org.apache.kafka kafka_2.11 0.9.0.1
org.apache.kafka kafka-clients 0.9.0.1
然后仿照原生包的CanalKafkaProducer,写了个CustomerCanalKafkaProducer,在配置com.alibaba.otter.canal.connector.core.spi.CanalMQProducer中使用了此类。
现在奇怪的是,之前只有本地单机时,运行完全没有问题。但是当我在另外网段的机器上建了两个集群的四个Server时,在本地单机实例上述的异常就发生了,但是另外机器的四个实例都是正常的。
我现在只能在另外两台机器上测试,本地测试不了。
这个议题如果按照下面的办法尝试解决的话可以关闭了。我找到了原因:服务器端Kafka版本为0.9.0.1。客户端因为使用了Springboot,导致其版本为高版本的Kafka客户端,就会产生上述的错误。
可以参考下面改法:
<properties> <canal.version>1.1.5</canal.version> <kafka.version>0.9.0.1</kafka.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>com.alibaba.otter</groupId> <artifactId>canal</artifactId> <version>${canal.version}</version> <type>pom</type> <scope>import</scope> </dependency> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.11</artifactId> <version>${kafka.version}</version> </dependency> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>${kafka.version}</version> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.11</artifactId> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> </dependency> </dependencies>
然后配置自定义的CustomerCanalKafkaProducer。这个类可以仿照原生的com.alibaba.otter.canal.connector.kafka.producer.CanalKafkaProducer进行微调降版本。
主要改动点注释掉producer.flush();还有其它报文格式的自定义。
原回答者GitHub用户vollen725
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。