有大佬知道 Apache RocketMQ中canal + 阿里云RocketMQ5 的这个报错怎么处理吗?
Caused by: org.apache.rocketmq.client.exception.MQBrokerException: CODE: 3 DESC: request code unsupported, code 320 BROKER: 39.108.175.57:8080 For more information, please visit the url, http://rocketmq.apache.org/docs/faq/ at org.apache.rocketmq.client.impl.MQClientAPIImpl.processSendResponse(MQClientAPIImpl.java:666) ~[na:na] at org.apache.rocketmq.client.impl.MQClientAPIImpl.sendMessageSync(MQClientAPIImpl.java:505) ~[na:na] at org.apache.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.java:487) ~[na:na] at org.apache.rocketmq.client.impl.MQClientAPIImpl.sendMessage(MQClientAPIImpl.java:431) ~[na:na] at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendKernelImpl(DefaultMQProducerImpl.java:854) ~[na:na] at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1004) ~[na:na] at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:986) ~[na:na] at org.apache.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:911) ~[na:na] at com.alibaba.otter.canal.connector.rocketmq.producer.CanalRocketMQProducer.sendMessage(CanalRocketMQProducer.java:338) ~[na:na]?把canal.mq.flatMessage设为false就解决了
根据报错信息来看,这个问题是由于请求码不受支持引起的。具体原因可能是由于版本不兼容或配置错误导致。
解决此问题的一种方法是将canal.mq.flatMessage
设置为false
。这个配置项用于指定是否将Canal的数据转换为扁平化的消息格式。通过将其设置为false
,可以避免报错。
另外,还可以检查以下几点:
确保使用的Apache RocketMQ和阿里云RocketMQ版本是兼容的。检查它们的兼容性矩阵,确保使用的版本是支持的。
检查RocketMQ的配置文件,确保Broker的地址和端口号正确。
检查Canal和RocketMQ的配置,确保它们之间的配置正确匹配。
如果以上方法都无法解决问题,建议查看更详细的日志信息,以便进一步排查问题。
参考这个文档看看。https://help.aliyun.com/document_detail/476221.html?spm=a2c4g.450842.0.0.5d5f4b0enmYBC4 ,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/