开发者社区 > 云原生 > 云消息队列 > 正文

the cached message count exceed,so do flow control

Warn RocketClint - the cached message count exceeds the threshold 1000, so do flow control

ons.log这个号报错需要怎么解决?

展开
收起
金陵打工人 2023-04-04 09:23:21 464 0
4 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    在阿里云消息队列 MQ中,当RocketClient缓存的消息数量超过1000时,就会出现该报错信息。这是由于RocketClient缓存的消息数量过多,导致消息队列的流量控制机制失效,从而影响消息的正常传输。

    要解决这个问题,可以考虑以下几个方面:

    1、调整消息消费速率:可以考虑调整消息的消费速率,减少消息积压的数量。可以通过增加消费者数量、优化消费者代码等方式来提高消息消费速率。

    2、增加RocketClient缓存容量:可以考虑增加RocketClient的缓存容量,以容纳更多的消息。可以通过在RocketMQ配置文件中增加"clientWorkerQueueSize"参数来增加RocketClient的缓存容量。

    3、增加RocketMQ服务器资源:如果RocketMQ服务器资源不足,也会导致RocketClient缓存消息数量过多。可以考虑增加RocketMQ服务器的资源,例如增加CPU、内存等资源,以提高服务器的处理能力。

    2023-04-24 18:34:23
    赞同 展开评论 打赏
  • 发表文章、提出问题、分享经验、结交志同道合的朋友

    你好,出现相关日志信息,说明客户端本地缓冲队列已满,消息堆积在客户端。

    2023-04-04 13:54:26
    赞同 展开评论 打赏
  • 是个只会写bug的程序媛啊!!!

    本地日志文件ons.log中出现he cached message count exceed这一句日志,就说明客户端本地缓冲队列已满。 下一步需要查看一下消息的消费耗时, 如果消费耗时较长,则要查看客户端堆栈信息排查具体业务逻辑 如果消费耗时正常,有可能是因为消费并发度不够导致消息堆积,需要逐步调大消费线程或扩容节点来解决。 如果消息堆积已经影响到业务运行,且堆积的消息本身可以跳过不消费,您可以通过重置消费微店跳过这些堆积的消息从最新位点开始消费,快速恢复业务。

    2023-04-04 10:07:00
    赞同 展开评论 打赏
  • 随心分享,欢迎友善交流讨论:)

    ons.log是阿里云消息队列(ONS)的日志文件,这个错误提示是因为消息队列中缓存的消息数量超过了1000,需要进行流量控制。

    要解决这个问题,可以采取以下措施:

    1、增加消息消费者的数量,以加快消息的消费速度,从而减少缓存的消息数量。

    2、调整消息生产者的发送速度,避免发送过多的消息,导致缓存的消息数量过多。

    3、调整消息队列的配置,增加缓存容量,以容纳更多的消息。

    如果以上方法无效,可以联系阿里云的技术支持,以获得更详细的帮助和支持。

    2023-04-04 09:44:18
    赞同 1 展开评论 打赏

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载