生产告警:java.lang.RuntimeException: org.apache.rocketmq.client.exception.MQBrokerException: CODE: 2 DESC: [TIMEOUT_CLEAN_QUEUE]broker busy, start flow control for a while, period in queue: 1348ms, size of queue: 8544 BROKER: xx.xx.xx.xx:port。
上网查了一下,看到一篇值得参考的文章,www.sohu.com/a/396792314… ,里面记录了排查的过程,我这里就不赘述了。 重点是根据上述排查过程可以明确一些比较基础的点和值得学习的点。 比较基础的点: 1、根据错误码 TIMEOUT_CLEAN_QUEUE 去查源码,根据源码调用链路来排查。 2、积累一些基础的类,比如DefaultMQProducerImpl、MQClientAPIImpl,内部是RocketMQ最基础的一些方法和逻辑。 3、一些最核心的调用方式, RocketMQ 就三种方式:oneway、async、sync。 其他其实可以通过时间和经验慢慢积累了。