C# 缩小规模时,Azure上的SignalR负载在自动缩放实例之间平衡会发生什么?
Azure网站可以根据负载设置为自动缩放。考虑下面的场景: 通常我只运行2个实例,但如果需要,可以扩展到10个。流量很高,所以我有10个实例,多个客户端与实例3-8建立websocket连接。流量减少,实例数减少到2C# 缩小规模时,Azure上的SignalR负载在自动缩放实例之间平衡会发生什么?,c#,.net,azure,signalr,C#,.net,Azure,Signalr,Azure网站可以根据负载设置为自动缩放。考虑下面的场景: 通常我只运行2个实例,但如果需要,可以扩展到10个。流量很高,所以我有10个实例,多个客户端与实例3-8建立websocket连接。流量减少,实例数减少到2 连接到实例3-8的客户端会发生什么情况?信号器尝试打开到特定服务器的套接字连接。因此,如果特定服务器被拆除(比如Azure应用程序服务规模缩小),则该客户端连接将被关闭 您可以在JavaScript中处理SignalR生存期事件,以便在发生这种情况时重新建立连接,从而最大限度地减少
连接到实例3-8的客户端会发生什么情况?信号器尝试打开到特定服务器的套接字连接。因此,如果特定服务器被拆除(比如Azure应用程序服务规模缩小),则该客户端连接将被关闭 您可以在JavaScript中处理SignalR生存期事件,以便在发生这种情况时重新建立连接,从而最大限度地减少对用户的影响 例如,如果您通常运行两个实例,并且连接了10个用户。这10个用户在实例#1和2上有信号器连接。然后自动缩放触发,现在突然提供了第三个实例。又来了10个用户,他们在实例1、2和3上获得了信号机连接。五个用户离开并自动缩放,缩放回两个实例。与第三个实例有信号器连接的其余5个用户将有一个关闭的连接。您需要在客户端上处理close lifecycle事件,以尝试在实例#1或2上重新启动信号器连接 我假设您已经配置了背板,否则您可能会问,“为什么我的用户偶尔没有收到消息?!”。)
这里有一个我发现对理解信号机很有用的例子。您使用的是什么信号机背板?我使用的是服务总线