有没有办法限制队列在RabbitMQ中可容纳的最大消息数?
例如,如果此数字设置为10且当前大小为10,则在将新消息推送到队列(FIFO)时将丢弃最旧的消息。
答案 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
新邮件进入时会丢弃最旧的邮件。