SignalR 和高可用性——如果服务器离开,Hub 客户端能否恢复?
SignalR and High Availability -- Can Hub Clients recover if the Server-Goes-Away?
假设 Azure 托管 Web 角色具有高可用性 WebAPI(假设 99.95%,根据 https://azure.microsoft.com/en-us/documentation/articles/resiliency-disaster-recovery-high-availability-azure-applications/)应用程序具有约 1000 个客户端。客户端是一个 ReactJS 应用程序。 WebAPI 应用程序将推送针对特定客户端组定制的通知(例如,并非所有客户端用户都对所有事件感兴趣,但>1 个用户可能对同一事件感兴趣)。
通过阅读 SignalR 文档和试用一些示例,感觉 SignalR Groups 将帮助我们将正确的事件流向正确的 ReactJS 应用程序实例。此外,我们将使用 SignalR 横向扩展提供程序之一来确保我们从正确的 WebAPI 服务器实例推送到客户端。
问:当"right WebAPI"实例不可用时,应用程序如何恢复?
我可以想象一个服务器端 active/passive 方案具有一定的复杂性,确保每个集线器客户端至少有一个 'server'...但是服务器可以连接(在未经请求的情况下)方式)到集线器客户端?我们是否会让每个 Hub 客户端(在注册群组时)连接到 >1 个服务器?
应用程序如何使用 SignalR 解决这个问题?
我想我错过了一个明显的观点,即横向扩展供应商和背板提供了客户需要的保护,以防止服务器消失。客户端不连接到特定服务器,而是连接到负载平衡的名称。
假设 Azure 托管 Web 角色具有高可用性 WebAPI(假设 99.95%,根据 https://azure.microsoft.com/en-us/documentation/articles/resiliency-disaster-recovery-high-availability-azure-applications/)应用程序具有约 1000 个客户端。客户端是一个 ReactJS 应用程序。 WebAPI 应用程序将推送针对特定客户端组定制的通知(例如,并非所有客户端用户都对所有事件感兴趣,但>1 个用户可能对同一事件感兴趣)。
通过阅读 SignalR 文档和试用一些示例,感觉 SignalR Groups 将帮助我们将正确的事件流向正确的 ReactJS 应用程序实例。此外,我们将使用 SignalR 横向扩展提供程序之一来确保我们从正确的 WebAPI 服务器实例推送到客户端。
问:当"right WebAPI"实例不可用时,应用程序如何恢复?
我可以想象一个服务器端 active/passive 方案具有一定的复杂性,确保每个集线器客户端至少有一个 'server'...但是服务器可以连接(在未经请求的情况下)方式)到集线器客户端?我们是否会让每个 Hub 客户端(在注册群组时)连接到 >1 个服务器?
应用程序如何使用 SignalR 解决这个问题?
我想我错过了一个明显的观点,即横向扩展供应商和背板提供了客户需要的保护,以防止服务器消失。客户端不连接到特定服务器,而是连接到负载平衡的名称。