【发布时间】:2017-12-02 05:11:21
【问题描述】:
有没有办法限制一个队列在 RabbitMQ 中可以容纳的最大消息数?
例如,如果此数字设置为 10,当前大小为 10,则在将新消息推送到队列 (FIFO) 时,最旧的消息将被丢弃。
【问题讨论】:
标签: rabbitmq message-queue amqp
有没有办法限制一个队列在 RabbitMQ 中可以容纳的最大消息数?
例如,如果此数字设置为 10,当前大小为 10,则在将新消息推送到队列 (FIFO) 时,最旧的消息将被丢弃。
【问题讨论】:
标签: rabbitmq message-queue amqp
是的,有 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
当新消息进来时,最旧的消息会被丢弃。
【讨论】: