MQ常见报错

 

 

 

补充:

1、broker busy,start flow control for a while

解决:增大 waitTimeMillsInSendQueue 默认为 200

解析:在进行消息追加时,再一次判断PageCache是否繁忙,如果繁忙,则抛出上述错误

2、broker busy, start flow control for a while, period in queue: %sms, size of queue: %d

解决:增大 waitTimeMillsInSendQueue 默认为 200

解析:如果检测到PageCache繁忙,并且发送队列中还有排队的任务,则直接不再等待,直接抛出系统繁忙错误,使正在排队的线程快速失败,结束等待

3、system busy,start flow control for a while

解决:增大 osPageCacheBusyTimeOutMills 默认为1000

解析:如果一次消息追加过程的时间超过了Broker配置文件osPageCacheBusyTimeOutMills,则认为pageCache繁忙,osPageCacheBusyTimeOutMills默认值为1000,表示1s。在不开启transientStorePoolEnable机制时,如果Broker PageCache繁忙时则抛出上述错误,判断PageCache繁忙的依据就是向PageCache追加消息时,如果持有锁的时间超过1s,则会抛出该错误;在开启transientStorePoolEnable机制时,其判断依据是如果TransientStorePool中不存在可用的堆外内存时抛出该错误。】

4、too many requests and system thread pool busy

解决:增大sendThreadPoolQueueCapacity 默认为10000

解析:其抛出的源码入口点:NettyRemotingAbstract#processRequestCommand,其调用地方紧跟3.1,是在向线程池执行任务时,被线程池拒绝执行时抛出的

 

posted on 2020-11-09 10:37  兔大锤  阅读(1977)  评论(0编辑  收藏  举报

导航