2015-06-02 1 views
0

У меня есть две роли рабочих облачных сервисов, размещенных в Azure, одна из которых использует сообщения с использованием NServiceBus (транспорт Azure Service Bus) и другой, который их производит.NServiceBus, Azure Service Bus, сообщения исчезают и не потребляются

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

Возможно ли, что начало создания сообщения создаст или опустит очередь назначения? Если да, как я могу настроить NServiceBus, чтобы этого не делать?

Спасибо.

ответ

0

После нескольких недель поиска у меня наконец есть ответ. Они не были удалены, они были перемещены в очередь мертвых букв. В то время я даже не знал, как смотреть туда, но я только нашел их в Azure Management Studio. Это не имело никакого отношения к развертыванию приложения-производителя - это была красная селедка.

После того, как вы выяснили, почему сообщения будут там, I found this, которые объяснили проблему и решение. После настройки параметров LockDuration и MaxDeliveryCount в очереди проблема, похоже, исчезла.

1

Нет, NServiceBus никогда не удаляет очередь, даже не очередь источник, не стесняйтесь искать кодовую в https://github.com/Particular/NServiceBus.AzureServiceBus/tree/master/src, и вы увидите, что только подписки на темы могут быть удалены (при отмене подписки)

Однако потребитель может выбрать, чтобы очистить очередь при запуске, настроен ли он таким образом (это выбор, а не по умолчанию) Вы можете поцарапать это, очистка не поддерживается транспортным средством azure servicebus

Может ли что-то еще , как средство диагностики или управления, возможно, прочитали и удалили сообщения из очереди?

+0

Спасибо, Ив. Наконец, я нашел источник проблемы (см. Ниже), и это вообще не имело никакого отношения к NServiceBus, что очень обнадеживает. –