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

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的写入(触发其他生产者退避逻辑,包括顺序和非顺序的写入)?

展开
收起
真的很搞笑 2023-05-16 17:57:54 308 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
    赞同 展开评论 打赏

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

相关产品

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

    热门文章

    相关电子书

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

    相关镜像