canal無法連接阿里云rocketMQ解決辦法

2020年4月24日16:39:37 發(fā)表評論 8,813 ℃

最近項目升級中間件,把原來自建的開源rocketMQ升級到阿里云的商業(yè)rocketMQ,其中涉及到canal同步mysql,通過rocketMQ發(fā)送消息的問題。

在把配置替換為阿里云rocketMQ相關(guān)信息以后,無法正常發(fā)送消息,具體報錯如下:

CANAL日志:

2020-04-23 08:02:52.785 [pool-6-thread-1] ERROR com.alibaba.otter.canal.rocketmq.CanalRocketMQProducer - send flat message to fixed partition error
org.apache.rocketmq.client.exception.MQClientException: No route info for this topic, CANAL_SYNC
For more information, please visit the url, http://rocketmq.apache.org/docs/faq/
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendSelectImpl(DefaultMQProducerImpl.java:936) ~[rocketmq-client-4.3.0.jar:na]
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:907) ~[rocketmq-client-4.3.0.jar:na]
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:902) ~[rocketmq-client-4.3.0.jar:na]
at org.apache.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:393) ~[rocketmq-client-4.3.0.jar:na]
at com.alibaba.otter.canal.rocketmq.CanalRocketMQProducer.send(CanalRocketMQProducer.java:197) [canal.server-1.1.3.jar:na]
at com.alibaba.otter.canal.rocketmq.CanalRocketMQProducer.send(CanalRocketMQProducer.java:75) [canal.server-1.1.3.jar:na]
at com.alibaba.otter.canal.server.CanalMQStarter.worker(CanalMQStarter.java:182) [canal.server-1.1.3.jar:na]
at com.alibaba.otter.canal.server.CanalMQStarter.access$500(CanalMQStarter.java:22) [canal.server-1.1.3.jar:na]
at com.alibaba.otter.canal.server.CanalMQStarter$CanalMQRunnable.run(CanalMQStarter.java:224) [canal.server-1.1.3.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_181]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_181]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_181]

MQ日志:

2020-04-23 08:08:51,051 WARN RocketmqClient - get Topic [CANAL_SYNC] RouteInfoFromNameServer is not exist value
2020-04-23 08:08:51,051 WARN RocketmqClient - updateTopicRouteInfoFromNameServer Exception
org.apache.rocketmq.client.exception.MQClientException: CODE: 17  DESC: No topic route info in name server for the topic: CANAL_SYNC
See http://rocketmq.apache.org/docs/faq/ for further details.
at org.apache.rocketmq.client.impl.MQClientAPIImpl.getTopicRouteInfoFromNameServer(MQClientAPIImpl.java:1233)
at org.apache.rocketmq.client.impl.MQClientAPIImpl.getTopicRouteInfoFromNameServer(MQClientAPIImpl.java:1203)
at org.apache.rocketmq.client.impl.factory.MQClientInstance.updateTopicRouteInfoFromNameServer(MQClientInstance.java:613)
at org.apache.rocketmq.client.impl.factory.MQClientInstance.updateTopicRouteInfoFromNameServer(MQClientInstance.java:500)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.tryToFindTopicPublishInfo(DefaultMQProducerImpl.java:577)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendSelectImpl(DefaultMQProducerImpl.java:920)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:907)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:902)
at org.apache.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:393)
at com.alibaba.otter.canal.rocketmq.CanalRocketMQProducer.send(CanalRocketMQProducer.java:197)
at com.alibaba.otter.canal.rocketmq.CanalRocketMQProducer.send(CanalRocketMQProducer.java:75)
at com.alibaba.otter.canal.server.CanalMQStarter.worker(CanalMQStarter.java:182)
at com.alibaba.otter.canal.server.CanalMQStarter.access$500(CanalMQStarter.java:22)
at com.alibaba.otter.canal.server.CanalMQStarter$CanalMQRunnable.run(CanalMQStarter.java:224)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

一開始認(rèn)為配置信息有問題,反復(fù)核對了accessKey、secretKey、producerGroup、namespace、topic、servers。確認(rèn)無誤以后,懷疑是canal不兼容現(xiàn)在的阿里云rocketMQ,咨詢阿里云售后也是一些官方回復(fù)。

無意間發(fā)現(xiàn)canal有了新版本,抱著試試的態(tài)度,把原來的1.1.3升級到最新穩(wěn)定版1.1.4版以后,測試正常。配置文件中還需要注意,把servers中的http://去掉,不然也無法連接到阿里云的rocketMQ。

【騰訊云】云服務(wù)器、云數(shù)據(jù)庫、COS、CDN、短信等云產(chǎn)品特惠熱賣中

發(fā)表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: