通过Web控制台设置Rabbitmq x-overflow拒绝发布时不起作用

时间:2018-08-21 11:36:08

标签: rabbitmq

我试图在Rabbitmq中设置特定队列的溢出行为,以拒绝超过最大限制的消息。我正在使用Web控制台添加新队列并设置x-max-length。然后,我手动添加了x-overflow,并为其设置了reject-publish的值。但是,似乎默认的溢出行为是正在应用的溢出行为,在该行为中,较旧的消息将被删除,而新消息将被排队。

我定义溢出行为的方式错误吗?有人可以指出我如何通过Web控制台设置溢出行为吗?

2 个答案:

答案 0 :(得分:0)

它不能通过Web gui来工作,只能通过cli来工作。 示例:

rabbitmqctl set_policy limit-1gb ".*" '{"max-length-bytes":1000000000,"overflow":"reject-publish"}' --apply-to queues
rabbitmqctl set_policy limit-1m ".*" '{"max-length":1000000,"overflow":"reject-publish"}' --apply-to queues

答案 1 :(得分:0)

x-overflow选项仅适用于经典队列,而不适用于法定队列。因此,如果您使用仲裁队列,这就是解释。

当前(在Rabbit 3.8.5中),仲裁队列仅支持掉头溢出,而不支持拒绝发布或拒绝发布dlx。