写mq消息失败
有时候解决问题的方式很简单,如下:
消费模式:
集群模式
普通消息:
单向发送
pom.xml配置
<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.0.4</version> </dependency>
1. 使用下面代码向mq写消息
rocketMQTemplate.convertAndSend(message.getMqTopic(), message.getMqMessage());
1.1 yaml配置文件内容
rocketmq: name-server: ip:端口 producer: group: "G-Group_REQ" send-msg-timeout: 30000
1.2 报错:sendDefaultImpl call timeout; nested exception is org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout
2. 使用下面代码
DefaultMQProducer producer = new DefaultMQProducer(message.getMqGroup()); producer.setNamesrvAddr(namesrvAddr); producer.setSendMsgTimeout(30000); producer.start(); Message msg = new Message(message.getMqTopic(), message.getMqMessage().getBytes()); producer.send(msg);
2.1 yaml配置文件内容
rocketmq:
name-server: ip:端口
2.2 报错:Send [3] times, still failed, cost [9490]ms, Topic: T-costcont-WelfareCostApproval, BrokersSent: [a, a, a]
See http://rocketmq.apache.org/docs/faq/ for further details.
2.3 报错:The producer group[G-costcont-WelfareCostApproval_REQ] has been created before, specify another name please.
See http://rocketmq.apache.org/docs/faq/ for further details.
3. 官方解释:
3.1 SEND_MSG_FAILED
异常信息
Send [xxx] times, still failed, cost [xxx]ms, Topic: xxx, BrokersSent ...
原因
1)Producer消息发送异常。在 SYNC 模式下总共发送 3 次,在 ASYNC 和 ONEWAY 模式下发送 1 次。
解决方法
1)Producer发送消息的timeout参数是否过小。
2)确保Broker正常。
3)确保 Producer 和 Broker 之间的连接正常。
3.2 GROUP_NAME_DUPLICATE_URL
异常信息
The producer group[xxx] has been created before, specify another name please.
原因
1)同名消费组已启动,注册失败。
解决方法
1)重命名新的消费者组。
2)同名的消费者组常闭,然后重新开始。
最终多方排查是:Producer 和 Broker 之间的连接问题,切换环境执行就没问题了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)