Горизонтальное масштабирование Tomcat в Microsoft Azure - PullRequest
4 голосов
/ 14 января 2011

Я некоторое время работаю над этим, но пока не могу сделать вывод.

Я хочу выполнить горизонтальное масштабирование экземпляров Tomcat в Microsoft Azure (1,2,3, ... экземпляров Tomcat для одной службы).Я прочитал много статей о репликации сессий, кластеризации, ... с Tomcat.Поскольку Azure не поддерживает многоадресную рассылку, нет простого способа кластеризации Tomcat.Кроме того, липкие сеансы недоступны, поскольку Azure выполняет циклическое распределение нагрузки.Настройка двух сервисов - один с Terracotta или Apache mod_jk - а другой с экземплярами Tomcat кажется мне излишним (если даже выполнимым) ...

Возможно ли это?

Заранее спасибодля чтения и ответа на мой вопрос.Каждый комментарий / идея высоко ценится.

Ответы [ 3 ]

1 голос
/ 14 января 2011

Почему вы чувствуете, что запуск двух сервисов является излишним?Если у вас нет проблем с масштабированием до n экземпляров Tomcat, добавление еще одного сервиса для распределения нагрузки является вполне приемлемым решением в моей книге.Запуская эту службу не менее чем в 2 экземплярах, эта служба сама соответствует требованиям соглашения об уровне обслуживания Azure: время безотказной работы будет таким же хорошим, как и в Azure, и вы избежите SPoF (единая точка отказа).

Вы можете пойти с таким продуктом, как терракота, но также довольно просто написать простой сервер сокетов для маршрутизации сеансов HTTP обратно к конкретному экземпляру, работающему в Windows Azure.Вы должны знать о повторном использовании узла, но это вполне выполнимо.

Имейте в виду, что memcached также требует дополнительной службы Azure (веб-роли), а служба кэширования appFabric не делает (но также имеет связанные с этим затраты.с этим).Я не знаю Tomcat, но для IIS вы можете легко перенести состояние сеанса из памяти в постоянное (SQL Azure или Azure Storage).Что нужно знать: для сайтов с большими объемами транзакции в хранилище Azure могут фактически стать драйвером затрат для вашего развертывания, если вы храните там информацию о сеансе.SQL Azure вполне может быть более экономически эффективным решением, но, с другой стороны, может не поддерживаться в готовом виде для вашего решения.

1 голос
/ 14 января 2011

Существует новая служба кэширования appFabric, которую вы можете использовать, или есть примеры использования Memcache в Azure, это поможет?

0 голосов
/ 14 января 2011

Я не думаю, что вы можете запустить Tomcat в Azure. Даже если бы вы могли (используя роль виртуальной машины), вероятно, дешевле запустить ее на виртуальной машине Linux в Amazon EC2.

Редактировать

Я вижу, что это возможно при использовании Tomcat Solution Accelerator. Но посмотрите на отказ от ответственности:

Это решение ускоритель предоставляется только в информационных целях и Microsoft или Infosys не делает гарантии, явные или подразумеваемые

Это неподдерживаемое решение. Я знаю, что зачастую сложно ставить под сомнение управленческие решения. Но использование неподдерживаемого программного обеспечения для производственных систем, когда доступна более дешевая поддерживаемая альтернатива, обычно не очень хорошая идея.

...