Тема служебной шины Azure - обработка повторяющихся сообщений в очереди тем

  • У нас есть лазурная тема с включенным свойством обнаружения повторяющихся сообщений.
  • Из-за вышеуказанной настройки любые сообщения с идентификатором сообщения, аналогичным предыдущему сообщению, в течение определенного периода времени игнорируются функцией azure webjob.
  • Однако мы хотели бы изучить и узнать больше о сообщениях, которые игнорируются. Есть ли у нас возможность запустить логику для повторяющихся сообщений?

person dks    schedule 29.08.2018    source источник
comment
Хороший вопрос, но я думаю, ты не сможешь. P.S. Вероятно, вы спрашиваете о теме служебной шины Azure, а не об очереди хранилища Azure. Если так, я бы изменил заголовок и теги вопроса.   -  person Mikhail Shilkov    schedule 29.08.2018


Ответы (2)


Из-за вышеуказанной настройки любые сообщения с идентификатором сообщения, аналогичным предыдущему сообщению, в течение определенного периода времени игнорируются функцией azure webjob.

Обнаружение дубликатов служебной шины Azure основано на идентификаторе сообщения в течение определенного временного окна. Дедупликацию выполняет брокер служебной шины Azure, а не веб-задание / функция Azure. Дедублированные сообщения никогда не проходят через брокерскую точку.

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

person Sean Feldman    schedule 29.08.2018

  1. Включение обнаружения дубликатов помогает отслеживать управляемый приложением MessageId всех сообщений, отправленных в очередь или тему в течение указанного временного окна. Если какое-либо новое сообщение отправляется с идентификатором MessageId, который уже был зарегистрирован в течение временного окна, сообщение считается принятым (операция отправки завершается успешно), но новое отправленное сообщение немедленно игнорируется и отбрасывается. Никакие другие части сообщения, кроме MessageId, не рассматриваются. (в блоге, упомянутом в одном из ответов, говорится, что содержимое сообщения не может быть дублированным, что неверно).

  2. Значение по умолчанию для истории времени обнаружения дубликатов теперь составляет 30 секунд, значение может находиться в диапазоне от 20 секунд до 7 дней.

В качестве альтернативы вы можете использовать такие инструменты, как Serverless360, здесь будет возможность повторно сгенерировать messageid.

Обратитесь к этому блогу, чтобы подробнее

person Reshma Sulthan    schedule 21.09.2018