Разница RabbitMQ между истекает и автоудаление? - PullRequest
0 голосов
/ 30 сентября 2019

Книга «RabbitMQ в действии» на странице 19 содержит следующие описания исключений и автоматического удаления:

auto-delete - очередь удаляется автоматически, когда последний потребитель отписался. Если вам нужна временная очередь, используемая только одним потребителем, объедините автоматическое удаление с эксклюзивным. Когда потребитель отключается, очередь будет удалена.

Затем в https://www.rabbitmq.com/ttl.html, дает описание expeire:

истекает контроль политик на то, как долго очередьможет быть неиспользованным, прежде чем он будет автоматически удален. Неиспользованный означает, что очередь не имеет потребителей, очередь не была недавно повторно объявлена ​​(повторное объявление обновляет аренду), и basic.get не вызывался в течение по крайней мере периода истечения

Ответы [ 2 ]

1 голос
/ 02 октября 2019

Простой и простой ответ здесь заключается в том, что exclusive / auto-delete удалит очередь сразу после того, как первый потребитель отключился , а expires удалиточередь после периода бездействия независимо от того, подключены ли потребители к ней в прошлом.

0 голосов
/ 01 октября 2019

расширение для автоудаление : очередь удаляется, когда все потребители закончили ее использовать. Последний потребитель может быть отменен либо явно, либо потому, что его канал закрыт. Если в очереди не было ни одного потребителя, он не будет удален. Приложения могут явно удалять очереди автоматического удаления, используя метод Delete.

объяснение expires : Время истечения может быть установлено для данной очереди путем установки x-expiresаргумент queue.declare, или путем установки политики истечения срока действия. Это определяет, как долго очередь может быть неиспользована, прежде чем она будет автоматически удалена. Неиспользуемый означает, что очередь не имеет потребителей, очередь не была недавно повторно объявлена ​​(повторное объявление обновляет аренду), и basic.get не вызывался в течение периода времени, по крайней мере, истечения. Это может быть использовано, например, для очередей ответов в стиле RPC, где можно создать много очередей, которые никогда не могут быть удалены.

Я думаю, что было бы лучше использовать expires вместо auto-delete, потому что если что-то происходитпроисходит, и подписчик отключается на короткое время, тогда сообщение не будет потеряно, что является большим преимуществом использования expires, и это объясняет просто разницу между ними.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...