0

클라이언트가 1000 개 이상인 고 가용성 WebAPI (예 : 9935 %, https://azure.microsoft.com/en-us/documentation/articles/resiliency-disaster-recovery-high-availability-azure-applications/) 응용 프로그램이있는 Azure에서 호스팅되는 웹 역할이 제공됩니다. 클라이언트는 ReactJS 응용 프로그램입니다. WebAPI 응용 프로그램은 특정 클라이언트 그룹에 맞는 알림을 푸시합니다 (예 : 모든 클라이언트 사용자가 모든 이벤트에 관심이있는 것은 아니지만> 1 명의 사용자가 동일한 이벤트에 관심을 가질 수 있음).SignalR 및 고 가용성 - Server-Go-Away의 경우 허브 클라이언트를 복구 할 수 있습니까?

SignalR 문서를 읽고 일부 샘플을 재생 한 결과 SignalR 그룹은 올바른 이벤트를 올바른 ReactJS 애플리케이션 인스턴스로 전달하는 데 도움이 될 것입니다. 또한 SignalR 스케일 아웃 제공자 중 하나를 사용하여 올바른 WebAPI 서버 인스턴스에서 클라이언트로 푸시하도록 할 수 있습니다.

질문 : "올바른 WebAPI"인스턴스를 사용할 수 없게되면 응용 프로그램이 어떻게 복구됩니까?

각 허브 클라이언트에 적어도 하나의 '서버'가 있는지 확인하는 것과 관련하여 약간의 복잡성이있는 서버 측 활성/비활성 구성표를 상상할 수 있지만 서버가 허브에 원하지 않는 방식으로 연결할 수 있습니까? 고객? 각 허브 클라이언트가> 1 서버에 연결할 때 (그룹에 등록 할 때)?

응용 프로그램에서 SignalR을 사용하여이 문제를 해결 한 방법은 무엇입니까?

답변

0

스케일 아웃 공급자와 백플레인이 클라이언트가 이동하는 서버에 대해 필요한 보호 기능을 제공한다는 분명한 사실을 놓쳤습니다. 클라이언트는 특정 서버에 연결하지 않고 부하가 분산 된 이름으로 연결합니다.

+0

내 원래 질문은 여전히 ​​의미합니다. 내 위의 대답은 옳지 않습니다. 문서를 읽으면 스케일 아웃 백 플레인이 모든 웹 서버에 모든 클라이언트에 대해 알릴 수 있습니다. 그러나 그룹스가이를 어떻게 활용하는지는 분명하지 않습니다. 두 개의 Web Machines,'WebA'와'WebB', 두 개의 클라이언트'ClientA'와'ClientB'를 2 개의 그룹,'GroupA'과'GroupB'로 가정하십시오. 'ClientA'가'WebA'에 접속하여'GroupA'에 합류하면'WebA'는'ClientA'에서 API를 호출 할 수 있습니까? WebA만이 ClientA에서 API를 호출 할 수 있습니다. 이 올바른지? –

+0

그룹스가 스케일 아웃 백 비행기와 잘 작동 함을 발견했습니다. 사용자 정의 코드가 필요하지 않습니다. 그룹과 함께 ServiceBus 사용, 각 응용 프로그램이 적절한 그룹으로 트래픽을 보낼 수있는 WebAPI 응용 프로그램 (OWIN)을 호스팅하는 IISExpress 인스턴스 2 개로 확인되었습니다. 또한 두 ThreadPool.QueueWorkItem 작업자가 두 웹 서버에 연결되어있는 그룹의 클라이언트에 트래픽을 보낼 수 있습니다. 저를 던진 것은 @DamianEdwards 2013 프리젠 테이션 (https://channel9.msdn.com/Events/Build/2013/3-502)에 몇 가지 의견이 있었기 때문에 제가 맞춤 솔루션이 필요하다고 생각하게되었습니다. 필요 없음. –