Подтвердить что ты не робот

Масштабируемость служебной шины Azure

Я пытаюсь понять, как я могу сделать задачу Azure Service Bus Topic масштабируемой для обработки > 10 000 запросов в секунду из более чем 50 разных клиентов. Я нашел эту статью в Microsoft - http://msdn.microsoft.com/en-us/library/windowsazure/hh528527.aspx. Это обеспечивает много хорошего ввода для масштабирования служебной шины azure, например, создание нескольких почтовых серверов, отправку и получение асинхронно, выполнение пакетной отправки/приема.

Но все эти данные поступают с точки зрения издателя и клиента. Что делать, если node работает Тема не может обрабатывать огромное количество транзакций? Как я могу контролировать это? Как я могу использовать тему на нескольких узлах? Любой вход на этом будет полезен.

Также интересно узнать, прошел ли кто-либо тестирование емкости с помощью Topic/Queue, и я очень хочу увидеть эти результаты...

Спасибо, Prasanna

4b9b3361

Ответ 1

Если вам нужно 10K или 100K или 1M или более запросов в секунду, посмотрите, что делается на шоссе. Больше трафика, больше дорожек.

Вы можете эффективно получать произвольные скорости потока из служебной шины, разбивая трафик на несколько объектов. Сервисная шина дает ряд заверений в отношении надежности, например. что мы не теряем сообщения, как только мы отбираем их у вас, или что мы назначаем безразмерные порядковые номера, и это имеет пропускную способность для отдельных объектов, как одна тема. Это точно так же, как полоса шоссе, способная иметь дело с X автомобилями/час. Сделайте больше дорожек.

Ответ 2

После этих ответов Microsoft выпустила массу новых возможностей.

  • Azure Автомасштабирование может отслеживать сообщения в очереди (или загрузки процессора) и запускать или останавливать экземпляры для поддержания этой цели.
  • В служебной шине представлен раздел разделенной очереди > (& themes). Это позволяет отправлять сообщения по нескольким очередям, но они выглядят как одна очередь для вас API. Резкое увеличение пропускной способности очереди.

Прежде чем вы это сделаете, я рекомендую вам попробовать: -

  • Async и Batched записываются в очередь.
  • Измените параметр Prefetch в Reads.
  • Также посмотрите на Receive.OnMessage(), чтобы убедиться, что вы получили сообщения, которые они доступны.

Это улучшит ваш перф от ~ 5 сообщений/сек до 100 или 1000 в секунду.

Ответ 3

У служебной шины есть свои ограничения "Емкость и квоты", ознакомьтесь с этой статьей, чтобы получить очень хороший обзор: http://msdn.microsoft.com/en-us/library/windowsazure/hh767287.aspx

Я предлагаю вам обратиться к местному специалисту MSFT, если у вас есть прецедент, который будет вызывать границы Azure Service Bus, MSFT имеет выделенные команды в Редмонде (по всему миру), которые могут помочь вам разработать и продвинуть эти границы на массивный масштаб, это Windows Azure CAT (Customer Advisory Team). Их цель - решить проблемы с реальным миром, и похоже, что у вас может быть один...

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

Команда Azure CAT имеет множество показателей по тестированию пропускной способности и нагрузки с помощью Service Bus (Azure в целом), они не всегда доступны для общественности, поэтому снова обращайтесь, если вы можете...

Ответ 4

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