消息队列生产端发送消息失败时,会尝试重发三遍,倘若三遍都失败,那么将抛出异常信息MQClientException: Send [3] times, still failed。
当发现这种异常,请检查以下几方面:
一,topic地域
如果生产端使用的topic是非公网环境(杭州,北京,深圳,青岛等地域),那么生产端必须部署在相应地域的ECS上。
如果生产端使用的topic是公网环境,那么生产端可以部署在本地,也可以部署在任意地域的ECS上(前提是ECS开通了公网,可访问外网)。
上面的原则同样适用于消费端,如果违背,发送/接收消息都会失败。
二,网络是否畅通
消息队列网络方面的排查,请参考:
http://help.aliyun.com/knowledge_detail/6671409.html?spm=5176.789006189.3.6.UbsCt3
三,代码
如果不是聚石塔,请将下面这行代码注释掉,举.net 为例:
//factoryInfo.setOnsChannel(ONSChannel.CLOUD);
四,其他
如果上面三个方面都没问题,那么有可能是后台数据不统一,请联系技术支持。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/