每秒Rabbitmq最大消息

时间:2018-05-01 11:59:29

标签: rabbitmq spring-rabbit spring-rabbitmq

如何配置rabbitmq队列每秒消耗20条消息?如果我有多个队列,是否可以为每个队列执行此操作? 如:

Q1->每秒20条消息

Q2->每秒15条消息

2 个答案:

答案 0 :(得分:1)

使用消息驱动的使用者时,您必须在侦听器本身中进行限制 - 添加Thread.sleep() - 或者向侦听器容器的建议链添加建议,以将逻辑与业务代码分开。

通常,当想要控制消费率时,如果要将确认推迟到消息之前,可能更容易使用RabbitTemplate.receive()操作(或RabbitTempalte.execute()channel.basicGet()已处理)。

答案 1 :(得分:0)

您无法在RabbitMQ中配置队列以每秒提供有限数量的邮件,您必须以编程方式执行此操作。

一种丑陋的技术是对该队列使用单个侦听器(一次消耗一条消息),并在该方法的开头添加Thread.sleep(100L) 10 msg / s或{{1}对于15msg / s(更一般地说,等待Thread.sleep(66L))。这保证了该方法花费的时间上限或多或少。