Очередь хранилища против очереди служебной шины - вопрос об опросе / стоимости - PullRequest
0 голосов
/ 01 ноября 2018

У меня слегка философская проблема. Мы используем Очереди хранения для обработки «билетов». Реализация, которую мы реализовали, заключается в том, что у нас есть фоновая служба (рабочая роль), которая опрашивает очередь хранилища и выясняет, есть ли какой-нибудь билет, который нужно обработать. Характер работы, которую мы делаем, носит сезонный характер. Это означает, что билеты не будут все время обрабатываться. Проблема, с которой мы сталкиваемся, заключается в том, что, поскольку несколько экземпляров рабочих ролей непрерывно опрашивают очередь хранения, мы оказываем влияние на стоимость, так как это слишком много вызовов GetMessage ().

Я наткнулся на очередь служебной шины, которая имеет возможность на основе событий. Там у нас есть концепция OnMesage (), которая вызывается каждый раз, когда новое сообщение становится доступным в очереди служебной шины.

Но мой вопрос - OnMessage () запускается и вызывает Receive () внутри? Что означает, что это просто синтаксический сахар, а внутри все еще идет опрос, и будет ли влияние на затраты в случае Service Bus Queue?

Любое понимание этого будет полезно.

1 Ответ

0 голосов
/ 02 ноября 2018

Клиент Azure Service Bus использует длинный опрос для получения сообщений от брокера. По умолчанию он установлен на 1 минуту или когда приходит сообщение. Поэтому, если у вас есть сообщение, отображаемое ранее, чем через 1 минуту, оно будет извлечено, и возникнет проблема с другим опросом в течение 1 минуты. OnMessage / MessageHandler не являются исключением. Это абстракция более высокого уровня поверх операции приема низкого уровня.

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