rocketmq排查队列分配的消费者情况

rocketmq生产者报连接超时
正常的rocketmq是启动在本地,但是在投递消息到本地生产者时经常会报超时。

这个时候就要检查对应的配置,这里定位到的是连接的broker的IP不是本机的IP.观察启动的broker日志
这个IP 主要来自broker的配置文件
brokerIP1=192.168.0.105
这个值通过查看本地的网卡,然后根据自己的实际地址进行更改配置文件,重启broker即可
rocketmq投递到MQ 但是消费不了
查看对应的消费者,发现对应的消费者消费出现负数。

以下截图不与上面相对应一致:

为了保持可以消费,需要先停掉rocketmq的服务,同时停掉模块,修改对应值,重启修复
rocketmq广播消费 消费不到
rocketmq 广播消费是需要把对应的数据保存到本地的目录下,默认是在
用户根目录/ .rocketmq_offsets/172.16.0.84@DEFAULT@1592448925517/g_mto_Y001_op 下,
LocalFileOffsetStore 有对应的逻辑。
当在同个机子上启动多个相同消费者时,会对这个本地的偏移量造成重复覆盖
原因:
集群模式下的消费者的instanceName会用PID,没有unitName影响不大,广播模式的instanceName是DEFAULT,不同实例之间会重复。
rocketmq出现从机子同步失败,导致mq启动失败
1、发现从机子的commitLog出现错误
2、删除从机子的data 和 config 文件夹,拷贝主机子的data和config文件夹到从机子,然后重启mq
rocketmq从节点配置出错恢复
1、停掉对应的从节点进程
2、备份从节点的data数据
3、修改从节点的brokerName与主节点相同
4、启动从节点,观察是否同步正常
rocketmq 在上报偏移量的时候,会报消费者已经关闭的状态
报错异常如下:
[2020-07-28 19:02:01] ERROR com.xuanwu.msggate.mtoserver.core.mqhandler.consumer.OffsetManager 241 lambda$new2−errorwhilerunoffsetUpdateThreadorg.apache.rocketmq.client.exception.MQClientException:Theconsumerisnotinrunningstatus,SHUTDOWNALREADYSeehttp://rocketmq.apache.org/docs/faq/forfurtherdetails.atorg.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.isRunning(DefaultMQPullConsumerImpl.java:105) [classes/:?]atorg.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.fetchConsumeOffset(DefaultMQPullConsumerImpl.java:111) [classes/:?]atorg.apache.rocketmq.client.consumer.DefaultMQPullConsumer.fetchConsumeOffset(DefaultMQPullConsumer.java:381) [classes/:?]atcom.xuanwu.msggate.mtoserver.core.mqhandler.consumer.OffsetManager.lambda2 - error while run offsetUpdateThread org.apache.rocketmq.client.exception.MQClientException: The consumer is not in running status, SHUTDOWN_ALREADY
See http://rocketmq.apache.org/docs/faq/ for further details.
at org.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.isRunning(DefaultMQPullConsumerImpl.java:105) ~[classes/:?]
at org.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.fetchConsumeOffset(DefaultMQPullConsumerImpl.java:111) ~[classes/:?]
at org.apache.rocketmq.client.consumer.DefaultMQPullConsumer.fetchConsumeOffset(DefaultMQPullConsumer.java:381) ~[classes/:?]
at com.xuanwu.msggate.mtoserver.core.mqhandler.consumer.OffsetManager.lambda2−errorwhilerunoffsetUpdateThreadorg.apache.rocketmq.client.exception.MQClientException:Theconsumerisnotinrunningstatus,SHUTDOWNALREADYSeehttp://rocketmq.apache.org/docs/faq/forfurtherdetails.atorg.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.isRunning(DefaultMQPullConsumerImpl.java:105) [classes/:?]atorg.apache.rocketmq.client.impl.consumer.DefaultMQPullConsumerImpl.fetchConsumeOffset(DefaultMQPullConsumerImpl.java:111) [classes/:?]atorg.apache.rocketmq.client.consumer.DefaultMQPullConsumer.fetchConsumeOffset(DefaultMQPullConsumer.java:381) [classes/:?]atcom.xuanwu.msggate.mtoserver.core.mqhandler.consumer.OffsetManager.lambdanew2(OffsetManager.java:229) [classes/:?]atjava.util.concurrent.Executors2(OffsetManager.java:229) ~[classes/:?]
at java.util.concurrent.Executors2(OffsetManager.java:229) [classes/:?]atjava.util.concurrent.ExecutorsRunnableAdapter.call(Executors.java:511) [?:1.8.0_171]
at java.util.concurrent.FutureTask.run$$capture(FutureTask.java:266)[?:1.8.0171]atjava.util.concurrent.FutureTask.run(FutureTask.java)[?:1.8.0171]atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[?:1.8.0171]atjava.util.concurrent.ThreadPoolExecutorcapture(FutureTask.java:266) [?:1.8.0_171]
at java.util.concurrent.FutureTask.run(FutureTask.java) [?:1.8.0_171]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_171]
at java.util.concurrent.ThreadPoolExecutorcapture(FutureTask.java:266)[?:1.8.0171]atjava.util.concurrent.FutureTask.run(FutureTask.java)[?:1.8.0171]atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)[?:1.8.0171]atjava.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:624) [?:1.8.0_171]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_171]
这个报错是因为上报的时候 消费者已经关闭了。
这个出现的情况要分析,当消费者关闭的时候,是无法上报的,这个时候就不要上报。
rocketmq-console 启动命令
java -jar rocketmq-console-ng-1.0.1.jar --rocketmq.config.namesrvAddr=127.0.0.1:9876 --server.port=8181
724

被折叠的 条评论
为什么被折叠?



