За сообщение TTL поведение с лопатами
Лопаты
- потребляет сообщения из очереди,
- повторно публикует каждое сообщение в брокере-получателе (используя, по умолчанию, исходное имя обмена и ключ маршрутизации, когда это применимо).
Я не смог найти никакой документации, каково ожидаемое поведение для TTL сообщений, когда используются лопатки:
Время, используемое для расчета TTL, начинается, когда сообщение получено у исходного брокера или у конечного брокера? Или это действительно только для первой публикации, то есть у исходного брокера?
Что произойдет, если время истечения истечет до того, как сообщение достигнет конечного посредника?
1 ответ
Итак, я думаю, что вы ответили на вопрос в документации, которую вы вставили. Все shovel
он перемещает сообщения из одной очереди в другую, публикуя их в процессе. Он сохранит все исходные свойства сообщения, которые теоретически включают свойство TTL.
При этом я не верю, что вам нужно о чем-то беспокоиться.
- Сообщение TTL начинается, когда очередь получает сообщение. Когда сообщение повторно публикуется, часы сбрасываются в новую очередь.
- Сообщения, транспортируемые
shovel
в идеале будет тратить не более нескольких миллисекунд в исходной очереди, если они вообще там окажутся (очередь сообщений с подключенным потребителем фактически не ставит в очередь какие-либо сообщения при большинстве условий). Таким образом, время, проведенное в первой очереди, должно быть настолько маленьким, что это не имеет значения. - Время жизни сообщения должно быть достаточным для переноса по сети и т. Д., Поэтому
shovel
находятся на одном уровне с нормальным шумом.
Если вы оказались в ситуации, когда большое количество сообщений накапливается в очереди, прежде чем они могут быть shovel
'd, тогда вам может понадобиться обработать истечение срока действия в вашем приложении. В этом есть и другие преимущества и предостережения, но в целом вы получаете более тонкий контроль.