[RocketMQ]客户端日志提示流控

  |   0 评论   |   2,279 浏览

    生产者流控,因为broker处理能力达到瓶颈;消费者流控,因为消费能力达到瓶颈。
    生产者流控:

    • commitLog文件被锁时间超过osPageCacheBusyTimeOutMills时,参数默认为1000ms,返回流控。
    • 如果开启transientStorePoolEnable == true,且broker为异步刷盘的主机,且transientStorePool中资源不足,拒绝当前send请求,返回流控。
    • broker每隔10ms检查send请求队列头部请求的等待时间,如果超过waitTimeMillsInSendQueue,默认200ms,拒绝当前send请求,返回流控。
    • broker通过拒绝send 请求方式实现流量控制。

    参考:http://tonfay.cn/articles/2019/05/24/1558668575716.html
    [TIMEOUT_CLEAN_QUEUE]broker busy, start flow control for a while, period in queue: 905ms, size of queue: 1164

    注意,生产者流控,不会尝试消息重投。

    消费者流控:

    • 消费者本地缓存消息数超过pullThresholdForQueue时,默认1000。
    • 消费者本地缓存消息大小超过pullThresholdSizeForQueue时,默认100MB。
    • 消费者本地缓存消息跨度超过consumeConcurrentlyMaxSpan时,默认2000。

    消费者流控的结果是降低拉取频率。

    评论

    发表评论

    validate