Java:RocketMQ消息发送报错:MQClientException: No route info of this topic: topic_xxx
·
场景
生产者发送消息出现报错无法定位到主题:fsc_wb_ccs_ms_wechat_s
异常信息
See http://rocketmq.apache.org/docs/faq/ for further details.
org.apache.rocketmq.client.exception.MQClientException: No route info of this topic: fsc_wb_ccs_ms_wechat_s
See http://rocketmq.apache.org/docs/faq/ for further details.
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.sendDefaultImpl(DefaultMQProducerImpl.java:735)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1426)
at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.send(DefaultMQProducerImpl.java:1369)
at org.apache.rocketmq.client.producer.DefaultMQProducer.send(DefaultMQProducer.java:351)
at com.xxx.rocketmq.producer.RocketMQProducer.sendMessage(RocketMQProducer.java:158)
at com.xxx.rocketmq.util.RocketMQProducerUtil.sendAppMessage(RocketMQProducerUtil.java:266)
at com.xxx.scheduler.task.CCSStatusSendTask.sendToAgs(CCSStatusSendTask.java:73)
at com.xxx.scheduler.task.CCSStatusSendTask.execute(CCSStatusSendTask.java:44)
at sun.reflect.GeneratedMethodAccessor185.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:798)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at net.javacrumbs.shedlock.core.DefaultLockingTaskExecutor.executeWithLock(DefaultLockingTaskExecutor.java:74)
at net.javacrumbs.shedlock.spring.aop.MethodProxyScheduledLockAdvisor$LockingInterceptor.invoke(MethodProxyScheduledLockAdvisor.java:86)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707)
at com.xxx.scheduler.task.CCSStatusSendTask$$EnhancerBySpringCGLIB$$c81e42e6.execute(<generated>)
at com.xxx.scheduler.config.ConfigurerScheduling.executeToDo(ConfigurerScheduling.java:41)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:95)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
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:750)
排查
1、查看RocketMQ管理端,确认该主题确实存在,但状态有问题

2、经过百度也没有找到真正的原因
3、删除该主题后重新启动服务生产者在该主题发送消息,该主题被重新创建,问题解决
原因
未知
解决
1、删除主题
2、重新启动服务生产者在该主题发送消息,该主题被重新创建,消息发送正常(本环境的MQ是配置了允许自动创建主题的)
补充
同样问题不同的情况
另外一个Java程序也出现同样的问题,但这次删除主题后生产者在该主题发送消息,该主题并没有自动创建
最终解决
1、删除主题
2、服务重启,生产者在该主题发送消息后主题没有自动创建
3、重启mq
4、再次重启服务,生产者在该主题发送消息后主题自动创建
更多推荐
所有评论(0)