最近對系統進行壓測,發現發送消息到消息隊列的時候出現以下錯誤:spring
com.alibaba.rocketmq.client.exception.MQBrokerException: CODE: 2 DESC: [TIMEOUT_CLEAN_QUEUE]broker busy, start flow control for a while, period in queue: 201ms, size of queue: 1spa
經查詢發現RocketMq在4.1版本之後爲producer增長了2個配置, 默認配置這兩個參數分別是1和false,將他們配置成 64 和true,就能解決問題線程
#發送消息的最大線程數
sendMessageThreadPoolNums: 64 #large thread numbers
#發送消息是否使用可重入鎖
useReentrantLockWhenPutMessage: true
該配置能夠在spring配置中設置,也能夠在RocketMq集羣機器上配置code
若是仍是會出現此問題,就須要調整RocketMq集羣機器配置:blog
waitTimeMillsInSendQueue = 300 #或者更大
而後重啓集羣隊列