문제

클라우드에 넣고 싶은 애플리케이션을 만들고 있습니다.이 응용 프로그램에는 하나의 주요 기능이 있습니다.

다른 사용자를 대신하여 소켓 CLIENT 세션을 호스팅합니다(iPhone용 Beejive IM을 생각해 보세요. 클라이언트가 해당 IM 네트워크에서 상태를 유지할 수 있도록 IM 세션을 호스팅하여 클라이언트가 IM 네트워크 연결을 끊지 않고 마음대로 연결/연결 해제할 수 있도록 합니다). ).

이제 제가 계획한 방식은 하나의 '작업자 인스턴스'가 제한된 수의 클라이언트 세션(논의를 위해 50,000이라고 가정하겠습니다)만 처리할 수 있다는 것입니다.이러한 세션은 매우 오래 지속되는 작업자 작업입니다.

제가 해결하려고 하는 문제는 때때로 특정 클라이언트 세션에 대해 작업을 수행해야 한다는 것입니다(예:클라이언트 세션의 연결을 끊어야 하는 경우).Azure를 사용하면 해당 특정 클라이언트 세션을 호스팅하는 인스턴스만 대기열에서 제거할 수 있는 더 작은 작업을 대기열에 추가할 수 있습니까?

지금은 GoGrid를 공급자로 고려하고 있으며 Apache의 Active Messaging Queue 소프트웨어를 사용하여 이 문제를 해결합니다.내 웹 앱은 특정 인스턴스 ID에 할당된 '연결 끊기' 작업을 대기열에 추가합니다.따라서 각 클라이언트 세션은 특정 인스턴스 ID에 할당됩니다.그런 다음 인스턴스는 할당된 '연결 끊기' 작업만 대기열에서 제거합니다.

Azure에서 비슷한 작업을 수행하는 것이 가능한지, 그리고 일반적으로 어떻게 수행할지 궁금합니다.확장을 위해 다양한 VM을 설정할 필요 없이 단일 패키지만 배포한다는 아이디어가 마음에 듭니다.또한 Apache ActiveMQ나 MSMQ와 같은 타사 제품을 통합하는 대신 Azure의 대기열을 활용하는 것이 좋을 것입니다.

도움이 되었습니까?

해결책

기능 세트, 가격 및 라이선스 조건이 확정될 때까지 Azure에서 프로덕션 애플리케이션을 구축하는 것에 대해 매우 우려하고 있습니다.우선, 그것과 예를 들어 비용 비교조차 할 수 없습니다.GoGrid 또는 EC2 또는 Mosso.그래서 어떻게 그것이 선두 주자가 될 수 있는지 알 수 없습니다.또한 우리는 이러한 모든 시스템이 성숙해짐에 따라 결함이 있다는 것을 알고 있습니다.Amazon의 서비스는 다른 서비스보다 훨씬 광범위하게 사용되고 있으며 수년 동안 공개적으로 제공되었습니다.Azure를 선택하는 IMHO는 안정화되면서 고통을 겪는 방법입니다.

아마존을 고려해 보셨나요? 단순 대기열 서비스 대기열에?

다른 팁

나는 이것을 위해 Windows Azure를 절대적으로 사용할 수 있다고 생각합니다.추적 중인 각 세션에 대해 대기열을 생성하는 것이 좋습니다.그런 다음 해당 세션의 대기열에 연결 해제 메시지(예:)를 넣습니다.해당 연결을 처리하는 작업자 인스턴스는 해당 대기열을 폴링하는 유일한 인스턴스여야 하므로 해당 연결에서 작업 수행을 처리해야 합니다.

클라이언트가 연결할 애플리케이션 호스팅 소켓 연결과 관련하여 Azure에서는 HTTP 및 HTTPS 연결만 허용된다고 생각하므로 무엇이 허용되는지 다시 확인하겠습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top