操作类 客户端注册失败 客户端日志报No matched consumer for the PullRequest PullRequest。 问题原因:客户端实例注册失败。 解决方案:检查客户端代码,重启客户端进程。 the consumer message buffer is full, so do flow control 客户端日志出现the consumer message buffer is full, so do flow control 问题原因:push客户端消费过慢,本地缓存队列已满,暂时停止向服务端拉取消息。消费慢的原因可能是网络原因、topic队列数过多、消费者过少,内存过小等。 解决方案: (1)查看网络是否异常,缓慢。 (2)增加消费者实例。 (3)如果消息不重要,又不方便增加消费者实例,可以减少topic队列数量。 system busy, start flow control for a while 客户端日志出现 [REJECTREQUEST]system busy, start flow control for a while 或者 [PCBUSYCLEANQUEUE]broker busy, start flow control for a while, period in queue。 问题原因: 在关闭生产者实例的同时用生产者实例发送消息,连接关闭了netty会拒绝请求。 线程少,处理发送请求过慢。 解决方案: 应用优化使用流程,禁止在close生产者实例后使用生产者。 如果Broker是同步主,那么改成异步主,或者将 sendMessageThreadPoolNums32且waitTimeMillsInSendQueue1000。 消费者消费不到消息如何处理 进入控制台查看订阅管理菜单,检查订阅组是否有消费实例在线,如果不在线检查消费客户端日志是否有连接异常。 检查消费客户端逻辑,是否存在订阅关系不一致的情况。 消费者机器宕机重启是否会造成消息丢失 RocketMQ的消息数据以及订阅信息都是持久化保存的,当消费者下线重新上线后,会Broker持久化的下线前的消费偏移重新开始消费,所以不会发生消息丢失的情况。 订阅消息时是否可以允许消息Tag为空 订阅主题时如果Tag设置为空会导致消费者消费不到消息,如不希望通过Tag进行消息过滤,可以将Tag设置为,示例如下: consumer.subscribe(topic, ""); 客户端连接时出现“signature validate by dauth failed”错误 这种错误的原因一般是由于ACL认证失败,较大的可能是客户端配置的AccessKey和SecretKey出现错误,可以检查下这两项配置是否输入有误。