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

Apache RocketMQ 是否有针对 Topic和Group级别限流 功能,在哪里可以看到?

问题1:Apache RocketMQ 是否有针对 Topic和Group级别限流 功能,在哪里可以看到;只到找到针对instnce级别 的峰值上限?image.png image.png 问题2:canal + rocketmq 多个canal 写入rocketmq,rocketmq实例的写入上限时3Ktps,每个canal 平时值比较稳定,但峰值可能是平时tps的10倍以上,超过实例上限image.png 如果某一个canal的写入超过实例上限,触发broker流控,会不会影响其他producer的写入(触发其他生产者退避逻辑,包括顺序和非顺序的写入)?

展开
收起
cuicuicuic 2023-05-16 17:57:54 208 0
2 条回答
写回答
取消 提交回答
  • 值得去的地方都没有捷径

    问题1:Apache RocketMQ提供了Topic和Group级别的限流功能。您可以在RocketMQ的Broker配置文件中,通过设置topic或group的属性来实现限流。具体来说,您可以设置以下属性:

    maxMsgSize:设置消息的最大大小,超过该大小的消息将被拒绝。 sendMsgThreadPoolNums:设置发送消息的线程池大小,限制发送消息的并发数。 sendThreadPoolQueueCapacity:设置发送消息的线程池队列大小,限制发送消息的并发数。 您可以在RocketMQ的官方文档中查看更多关于Broker配置的信息。

    问题2:如果某一个canal的写入超过实例上限,会触发broker的流控机制,限制该canal的写入速度,但不会影响其他producer的写入。其他producer仍然可以正常写入消息,但可能会受到一定的影响。如果您的应用程序对消息的时效性要求比较高,建议您在发送消息时设置消息的过期时间,以避免消息因为流控被延迟发送。

    2023-05-22 11:40:06
    赞同 展开评论 打赏
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    是的,Apache RocketMQ提供了基于Topic和Group的限流功能。您可以在RocketMQ的配置文件中设置这些限流参数。具体而言,可以通过设置defaultTopicQueueNums参数来控制每个Topic的队列数量,从而限制消息的并发处理能力;通过设置consumeMessageBatchMaxSize参数来控制每个消费者Group在一次拉取中最多拉取的消息数量,从而控制消费者的消费速率。

    您可以在RocketMQ的官方文档中查看这些参数的详细说明。例如,关于defaultTopicQueueNums参数的说明可以在官方文档的这个页面中找到;关于consumeMessageBatchMaxSize参数的说明可以在这个页面中找到。

    2023-05-16 18:01:44
    赞同 展开评论 打赏

多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖多行业。

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

    更多
    Apache Flink技术进阶 立即下载
    Apache Spark: Cloud and On-Prem 立即下载
    Hybrid Cloud and Apache Spark 立即下载

    相关镜像