【问题标题】:RabbitMQ - Is there a way to limit the number of messages in a queue?RabbitMQ - 有没有办法限制队列中的消息数量?
【发布时间】:2017-12-02 05:11:21
【问题描述】:

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

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

【问题讨论】:

    标签: rabbitmq message-queue amqp


    【解决方案1】:

    是的,有 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

    【讨论】:

      最近更新 更多