RocketMQ教程(四) - 常见问题

目录

(一)基础
(二)进阶
(三)高可用部署
(四)常见问题

 

正文

1
MQClientException: No route info of this topic, test()

发生场景
Producer发送消息

可能原因
A. Broker没有成功连接NameServer -> 通过telnet命令检查从Broker Server到NameServer的网络连接是否正常
B. Producer没有成功连接NameServer -> 通过telnet命令检查从Producer到NameServer的网络连接是否正常
C. Broker禁止自动创建Topic -> 通过命令行创建Topic,或者在broker.conf中添加autoCreateTopicEnable=true

 

2
RemotingTooMuchRequestException: sendDefaultImpl call timeout

发生场景
Producer发送消息

可能原因
A. Producer没有成功连接Broker -> 检查网络
B. Producer使用了VIP通道连接Broker -> producer.setVipChannelEnabled(false);

 

3
MQBrokerException: CODE: 2 DESC: [TIMEOUT_CLEAN_QUEUE]broker busy, start flow control for a while,
period in queue: 202ms, size of queue: 0

发生场景
Producer发送消息时偶尔发生

发生原因
线程池的默认线程数是1,开启多线程发送消息有时会抛出此异常

解决办法
在配置文件broker.conf中添加sendMessageThreadPoolNums = 32

 

4
MQClientException: CODE: 208 DESC: query message by id finished, but no message.

发生场景
命令行或rocketmq-console按ID查询消息时

发生原因
queryMsgById虽然名字叫ById,但是实际接收的参数是UniqueKey

 

5
消费者丢失消息

发生场景
消费端运行时偶尔发生,在rocketmq-console能查询到丢失的消息,但是始终处于未被消费状态

问题原因
消费者服务器和Broker服务器时间相差1秒以上

你可能感兴趣的:(分布式开发)