За сообщение TTL поведение с лопатами

Лопаты

  • потребляет сообщения из очереди,
  • повторно публикует каждое сообщение в брокере-получателе (используя, по умолчанию, исходное имя обмена и ключ маршрутизации, когда это применимо).

Я не смог найти никакой документации, каково ожидаемое поведение для TTL сообщений, когда используются лопатки:

  • Время, используемое для расчета TTL, начинается, когда сообщение получено у исходного брокера или у конечного брокера? Или это действительно только для первой публикации, то есть у исходного брокера?

  • Что произойдет, если время истечения истечет до того, как сообщение достигнет конечного посредника?

1 ответ

Решение

Итак, я думаю, что вы ответили на вопрос в документации, которую вы вставили. Все shovel он перемещает сообщения из одной очереди в другую, публикуя их в процессе. Он сохранит все исходные свойства сообщения, которые теоретически включают свойство TTL.

При этом я не верю, что вам нужно о чем-то беспокоиться.

  1. Сообщение TTL начинается, когда очередь получает сообщение. Когда сообщение повторно публикуется, часы сбрасываются в новую очередь.
  2. Сообщения, транспортируемые shovel в идеале будет тратить не более нескольких миллисекунд в исходной очереди, если они вообще там окажутся (очередь сообщений с подключенным потребителем фактически не ставит в очередь какие-либо сообщения при большинстве условий). Таким образом, время, проведенное в первой очереди, должно быть настолько маленьким, что это не имеет значения.
  3. Время жизни сообщения должно быть достаточным для переноса по сети и т. Д., Поэтому shovel находятся на одном уровне с нормальным шумом.

Если вы оказались в ситуации, когда большое количество сообщений накапливается в очереди, прежде чем они могут быть shovel'd, тогда вам может понадобиться обработать истечение срока действия в вашем приложении. В этом есть и другие преимущества и предостережения, но в целом вы получаете более тонкий контроль.

Другие вопросы по тегам