如何根据rocketmq参数调整拉取速度

一 .影响RocketMq拉取速度因素

1.PullBatchSize 单次拉取数量

   Rocketmq单队列在同一时间拉取数量,可以修改最大值一般为32,如需再次扩大,需要调整服务参数。

2.pullInterval单次拉取间隔

   Rocketmq 每次拉取消息的间隔时间,默认值为0无间隔,毫秒单位,1000则为一秒。

3.Quenes队列数

   非配置,与topic建立,以及brocker数量有关,如broker为2主,每主两重设置,每个broker 8个队列,则为16个队列。

二 .拉取速度计算方法

   速度= quenes(16)* PullBatchSize * 1000/pullInterval

    Eg:
       Quenes: 16
       PullBatchSize: 10
       pullInterval: 500

   速度: 16* 30 * 1000/1000=480

三.注意事项

1. 队列数不能被集群节点平分

    同一队列不能同时被分片不同节点,在限速情况下,增加节点不能增加消息发送速度。
   单节点:
   配置:
       Quenes: 16
       PullBatchSize: 10
       pullInterval: 500
    实际:
      速度: 16* 30 * 1000/1000=480
   双节点:
   配置:
       Quenes: 16
       PullBatchSize: 10
       pullInterval: 500
   实际:
      速度:
      节点一: 8* 30 * 1000/1000=240
      节点二: 8* 30 * 1000/1000=240

2 多节点速度

多节点配置,速度建议配置一致,否则配置速度快节点消息快速发送完毕,速度慢节点还在继续发送,最终发送时间会以发送慢队列时间为准。

3 关于节点启动顺序

   在批量消息等发送场景,必须在发送前配置好限速速度,如果消息正在发送,如果想提高速度,不能依靠增加节点来增加拉取速度,主要有以下两方面原因:
   1.增加节点仅仅会分配已有队列,队列数并没有增加
   2.如果新增加节点速度配置过快,会出现部分队列先消费结束,而原节点消息还未消费完毕结束,见3.2.
   故在批量发送后,想调整拉取速度,必须调整原有节点参数,原有节点需要重新启动。
   当部分节点机器性能负载过高,可以考虑新加节点。

四 总结

   在rocketmq使用中,经常会出现由于对方服务端性能较差,要求请求端限制流量的情况,可以调整rocketmq拉取参数,来调整拉取速度,达到限流的目的,但在是用时,需要注意一些实际的问题。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淡淡的烟雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值