Поддерживает ли Windows Azure добавление дополнительного экземпляра в размещенную службу без перезапуска других экземпляров? - PullRequest
1 голос
/ 24 февраля 2012

У меня уже есть развертывание размещенной службы, в котором есть 2 экземпляра рабочих ролей, я хочу добавить еще 3 экземпляра рабочих ролей в одну и ту же размещенную службу, и в то же время я не хочу перезапускать существующие 2 экземпляра рабочих ролей.,

Хотя я могу создать другую размещенную службу и добавить в нее новые 3 экземпляра, но я слышал, что Azure поддерживает только 6 размещенных служб для каждой учетной записи.Это правда?

Поскольку мое приложение будет использовать функцию облачного диска, я буду создавать только 1 экземпляр для каждой роли.

Ответы [ 4 ]

1 голос
/ 24 февраля 2012

@ Игорь и @Майк уже дали вам отличные ответы. Позвольте мне добавить немного деталей для решения вашей проблемы с драйверами Azure.

Похоже, вы разрабатываете конфигурацию с одним экземпляром на роль, просто чтобы у вас был один записываемый диск на экземпляр. Если это действительно так, то это не очень хорошо масштабируется: для этого требуется, чтобы вы изменяли свой проект (и развертывали новый пакет) каждый раз, когда вы хотите увеличить или уменьшить масштаб. В качестве альтернативы просто создайте уникальный диск для каждого экземпляра та же роль. Придумайте схему именования на основе идентификатора экземпляра (для простого примера: /Drives/Instance0.vhd). После запуска экземпляра попросите экземпляр определить свой идентификатор и создать диск (или смонтировать существующий). Идентификатор доступен через RoleEnvironment.CurrentRoleInstance.Id.

0 голосов
/ 24 февраля 2012

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

Также верно, что по умолчанию Windows Azure ограничивает ваш предел размещаемых служб до 6 для каждой учетной записи. Я полагаю, что вы можете увеличить этот лимит, позвонив в их службу поддержки и сняв ограничение после того, как они выполнят проверку кредитоспособности ... Однако правильная схема масштабирования - НЕ добавлять дополнительные услуги, а добавлять дополнительные экземпляры.

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

public override bool OnStart()
{
    RoleEnvironment.Changing += RoleEnvironmentChanging;
return base.OnStart();
}


private void RoleEnvironmentChanging(object sender, RoleEnvironmentChangingEventArgs e)
{
    // If a configuration setting is changing
    if (e.Changes.Any(change => change is RoleEnvironmentConfigurationSettingChange))
    {
        // Set e.Cancel to true to restart this role instance
        e.Cancel = false;
    }
}

По совпадению, если вы хотите настроить автоматическое масштабирование, добавляя или удаляя экземпляры в вашу службу по мере увеличения или уменьшения спроса, вы можете обратиться к сторонней службе под названием AzureWatch по адресу http://www.paraleap.com

0 голосов
/ 24 февраля 2012

Я не уверен, что полностью понимаю ваш вопрос здесь, но вот некоторые идеи. 1) Как уже отмечалось, если вы хотите добавить экземпляры существующих рабочих ролей, которые могут быть выполнены, и вы должны (я полагаю, даже в Java) иметь возможность предотвратить перезапуск существующих экземпляров. 2) Если вы хотите создать новые роли (новые определения), это можно сделать, и, как предложено, можно преодолеть «предел» в 6 услуг. И если вы хотите добавить новые роли без перезапуска всего, это также возможно - см. http://blogs.msdn.com/b/windowsazure/archive/2011/10/19/announcing-improved-in-place-updates.aspx для получения дополнительной информации. 3) Вы также упоминаете о желании запустить отдельный экземпляр каждой роли из-за использования «облачного диска». Я не уверен, что понимаю проблему здесь. Если вы монтируете один и тот же диск, не имеет значения, монтируется ли он из одного или нескольких экземпляров роли или монтируется разными ролями - в любом случае его можно монтировать только из одного экземпляра для записи, но вы смонтировать его из нескольких экземпляров для чтения.

Надеюсь, это полезно. Пожалуйста, дайте мне знать, если я неправильно понял ваши вопросы / вопросы, и мы посмотрим, сможем ли мы найти правильный ответ!

Спасибо и удачи!

0 голосов
/ 24 февраля 2012

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

...