Существует большая разница между очередями и темами: с очередями каждое сообщение получает только 1 потребитель . С темой каждый потребитель , подписавшийся на тему, получит каждое сообщение (хотя есть место для фильтрации ...). Если ваш сценарий требует, чтобы каждое сообщение обрабатывалось только одним потребителем, используйте очереди. Если все зарегистрированные процессы должны работать над этим, используйте темы.
Вы можете иметь несколько слушателей в очереди. Допустим, у нас есть Процесс A и Процесс B, которые оба слушают очередь. Приходит сообщение, и процесс А забирает его. Если поступит другое сообщение, и процесс A еще не завершен, процесс B получит сообщение. Если процесс А готов, любой из процессов может получить второе сообщение.
Дополнительную информацию о конкурирующих потребителях можно найти в статье Конкурирующие потребители в Центре архитектуры Azure, содержащей пример кода (ссылки на).