0

Я пытаюсь понять, как лучше всего использовать хост-клиент очереди сообщений в роли рабочего места в лазури. У меня есть много разных потребителей сообщений, которые подписываются на разные подписки на служебную шину azure (или очередь, если вы хотите называть это). Мне интересно, должен ли я создавать несколько потоков для каждого потребителя в одной рабочей роли или мне нужно развернуть на несколько рабочих роли для каждого пользователя.Azure worker role + number of queue customer

ответ

2

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

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

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

+0

спасибо, есть ли библиотека, которая позволяет мне управлять потоком и контролировать, сколько потоков выполняется во время выполнения (или по конфигурации)? – Eatdoku