RabbitMQ默认队列中的最大长度

时间:2018-01-21 09:57:27

标签: rabbitmq

我是兔子的新手,需要帮助在队列中设置默认的最大消息。想法是一个发布者发送消息。所有订阅者都收到所有消息。我通过为订阅者创建不同的队列来做到这一点......没问题。但是,当发布者发送消息并且订阅者离线时,消息存储在队列中,在订阅者返回后,他接收所有存储的消息。所以如果现在无法传递消息,我希望所有队列都不存储消息。

我使用windows版本的rabbitmq 3.7.2

尝试使用像rabbitmqctl.bat set_policy my-pol“”“{”“max-length”“:1,”“overflow”“:”“reject-publish”“}” - apply-to queues 没有足够的params错误

1 个答案:

答案 0 :(得分:0)

你有两种方法可以做到这一点,它们的组合对你也有用:

  • 将队列属性durable设置为false,将auto-delete设置为true。这样,一旦客户端断开连接,队列就会自动删除。

  • 如您所述,设置max-length政策:

    rabbitmqctl set_policy my-pol ".*" '{"max-length":1,"overflow":"reject-publish"}' --apply-to queues

    这里的第二个参数是regex,它应该与队列匹配,所以我猜这就是RMQ抱怨失踪的原因。