gpt4 book ai didi

RabbitMQ - 'delivery-limit' 和 'x-delivery-limit' 队列参数之间的差异

转载 作者:行者123 更新时间:2023-12-02 18:23:01 32 4
gpt4 key购买 nike

delivery-limitx-delivery-limit 有什么区别?

当我将 x-delivery-limit 设置为 RabbitMQ 队列参数时,我可以看到它限制了我的消息重新排队尝试,正如我预期的那样,但在官方 RabbitMQ 文档中我看到了 传递限制

最佳答案

两者都是有效的设置。

区别在于 delivery-limit 是一个策略 vs x-delivery-limit 是一个队列参数.

同样的区别适用于其他 RabbitMQ 设置,例如

  • dead-letter-exchange 是一个策略,而 x-dead-letter-exchange 是一个队列参数
  • queue-length 是一个策略 vs x-queue-length 是一个队列参数

队列参数以x- 为前缀,也称为x-argumentx 代表“额外”或“扩展”,因为这些参数扩展了强制队列设置。强制队列设置例如是 durableexclusive 属性。 x-arguments 是可选的队列设置。 x-arguments 由客户端在声明队列时设置。

也就是说,要更改x-argument,您需要重新部署客户端并重新声明队列。对于现有队列,不允许更改 x-argument,这将导致 inequivalent arg error 关闭 channel 。

这就是政策派上用场的地方。它们具有以下优点:

  1. 政策是动态应用的。声明队列后,策略可以在运行时更改队列设置。请注意,并非所有队列设置都可以通过策略进行更改。例如,不允许更改 x-queue-type(例如从 classic 队列到 quorum 队列),因为队列进程及其处理方式存储消息一旦创建就不能动态更改。但是,大多数队列设置(包括 delivery-limit)都可以通过策略动态更改。
  2. 策略可以应用于队列(和交换组)。队列参数只能应用于单个队列。

一般来说,最好尽可能使用策略而不是队列参数,因为策略更灵活。

更多官方文档:https://www.rabbitmq.com/parameters.html#why-policies-exist

关于RabbitMQ - 'delivery-limit' 和 'x-delivery-limit' 队列参数之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70622173/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com