Уникальные сообщения на тему служебной шины Azure - PullRequest
0 голосов
/ 24 мая 2019

Можно ли обеспечить уникальные сообщения в теме служебной шины Azure?

Я знаю, что ASB имеет функцию обнаружения дубликатов. Но это не совсем то, что я хочу.

Допустим, в теме есть сообщение с MessageID 123. Пока это сообщение не будет обработано потребителем, я хочу отбросить другое сообщение в теме с тем же идентификатором. Как только это сообщение будет обработано, новые сообщения с идентификатором 123 снова будут разрешены.

Может ли служебная шина помочь с этим или нам нужно обрабатывать это на прикладном уровне.

1 Ответ

0 голосов
/ 24 мая 2019

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

Я не думаю, что служебная шина должна выполнять какую-либо проверку полезных данных сообщения, это не их работа. Убедиться в том, что вы не отправляете два сообщения с одним и тем же идентификатором, - лучший способ избежать ОЧЕНЬ дальнейших осложнений. Лучше убедиться, что вы не отправляете два сообщения с одним и тем же идентификатором, чем управлять конфликтами позже ... например, если одно из сообщений вставляет данные в базу данных, а две записи имеют одинаковый идентификатор, это вызовет исключение.

Кроме того, удаление «других сообщений» с тем же идентификатором вызовет необъяснимое поведение / проблемы / ошибки намного больше, чем предотвращение конфликтов идентификаторов. Что если ваш пользователь сделал что-то, что отправило сообщение с идентификатором 123, ожидая увидеть результат, но его сообщение будет удалено вашей системой, потому что кто-то еще отправил сообщение с тем же идентификатором? Вы просто сломали систему для этого пользователя, нет?

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