RabbitMQ - 有没有办法限制队列中的消息数量?

时间:2017-06-28 17:37:54

标签: rabbitmq message-queue amqp

有没有办法限制队列在RabbitMQ中可容纳的最大消息数?

例如,如果此数字设置为10且当前大小为10,则在将新消息推送到队列(FIFO)时将丢弃最旧的消息。

1 个答案:

答案 0 :(得分:2)

是的,有x-max-length属性:

Map<String, Object> args = new HashMap<String, Object>();
args.put("x-max-length", 10);
channel.queueDeclare("myqueue", false, false, false, args);

您也可以通过使用rabbitmqctl:

为其配置策略来实现此目的
rabbitmqctl set_policy Ten ".*" '{"max-length":10}' --apply-to queues

新邮件进入时会丢弃最旧的邮件。

详情请见:https://www.rabbitmq.com/maxlength.html