Windows Azure를 사용하면 다른 인스턴스를 다시 부팅하지 않고도 즉시 인스턴스를 추가 할 수 있습니다. RoleEnvironment_Changing 이벤트를 처리하는 동안 Azure가이를 알릴 필요가 있습니다.
기본적으로 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라고하는 제 3 자 서비스를 볼 수 있습니다.
http://www.paraleap.com
감사합니다. Mike, 제 목적은 기존의 호스팅 서비스에 새로운 역할을 추가하는 것입니다. 귀하의 답변은 거의 내가 원하는 것입니다,하지만 만약 내가 호스팅 서비스에 역할을 추가하려면, 전체 호스트 서비스를 업그레이 드하는 동안 업그레이 드하는 동안 기존의 모든 역할을 다시 시작해야합니다 발견했다. 일부 문서에서는 전체 업그레이드를 수행 할 때 역할 당 최소 2 개의 인스턴스가 실행되어야한다고 언급했음을 기억합니다. 그리고, 내 응용 프로그램은 클라우드 드라이브에 데이터를 쓸 것이므로 역할 당 인스턴스가 하나뿐입니다. – Xilang
당신이 맞습니다. - 역할 당 2 개 이상의 인스턴스가 있다면, 업그레이드 도메인은 완전한 종료없이 역할을 업그레이드 할 수 있습니다. 예를 들어, 각 역할에 대해 두 개의 인스턴스가있는 경우 인스턴스 1 개가 업그레이드되어 다른 인스턴스는 계속 실행됩니다. 완료되면 새 인스턴스가 실행되는 동안 두 번째 인스턴스가 업그레이드됩니다. 그러나 단일 인스턴스로는이 작업을 수행 할 수 없습니다. 또한 각 역할의 인스턴스를 1 개만 실행하면 SLA가없는 것을 기억하십시오. –
감사합니다. Mike, 클라우드 드라이브를 사용할 경우 대답은 "아니오"입니다. 그러나 내 응용 프로그램은 데스크톱 응용 프로그램과 비슷하지만 파일에 데이터를 써야합니다. Seure Azure는 그런 경우를 아주 잘지지하지 않습니다. – Xilang