背板与粘性负载均衡器
Backplane vs Sticky Load balancer
我正在开发 SignalR application.There 将是我的应用程序的多个实例 运行 在负载均衡器后面的不同服务器上。我阅读了有关背板的信息,发现它主要用于服务器故障的目的并处理多个服务器之间的请求跳转。(可能还有其他好处)。
请考虑以下情况并建议我是否还需要背板。
我正在使用粘性负载平衡(即来自客户端的所有后续请求都转到同一台服务器)?所以在好的情况下没有请求跳跃的机会。
我如何处理服务器宕机场景 - 当服务器宕机时。客户端尝试重新连接并收到“404-未找到”error.At 这次客户端启动新连接并且它有效。
开发SignalR
应用程序时使用背板的主要原因来自以下场景:
- 假设您有 2 台 Web 服务器托管您的应用程序,
serverA
和 serverB
- 您有 2 个客户端连接到您的应用程序,
client1
由 serverA
服务,client2
由 serverB
服务
开发 SignalR
应用程序时的一个很好的假设是您希望这两个客户端相互通信。因此 client1
向 client2
发送消息。
在client1
发送消息的那一刻,他的请求被server1
完成了。但是 server1
在内存中保留连接用户的映射。它寻找 client2
,但 client2
保存在 serverB
的内存中,因此消息永远不会到达那里。
通过使用背板,基本上来自一台服务器的每条消息都会广播到所有其他服务器。
One solution is to forward messages between servers, using a component called a backplane. With a backplane enabled, each application instance sends messages to the backplane, and the backplane forwards them to the other application instances.
取自SignalR Introduction to scaleout
一定要检查这个backplane with Redis from the SignalR documentation。
希望这对您有所帮助。祝你好运!
我正在开发 SignalR application.There 将是我的应用程序的多个实例 运行 在负载均衡器后面的不同服务器上。我阅读了有关背板的信息,发现它主要用于服务器故障的目的并处理多个服务器之间的请求跳转。(可能还有其他好处)。
请考虑以下情况并建议我是否还需要背板。
我正在使用粘性负载平衡(即来自客户端的所有后续请求都转到同一台服务器)?所以在好的情况下没有请求跳跃的机会。
我如何处理服务器宕机场景 - 当服务器宕机时。客户端尝试重新连接并收到“404-未找到”error.At 这次客户端启动新连接并且它有效。
开发SignalR
应用程序时使用背板的主要原因来自以下场景:
- 假设您有 2 台 Web 服务器托管您的应用程序,
serverA
和serverB
- 您有 2 个客户端连接到您的应用程序,
client1
由serverA
服务,client2
由serverB
服务
开发 SignalR
应用程序时的一个很好的假设是您希望这两个客户端相互通信。因此 client1
向 client2
发送消息。
在client1
发送消息的那一刻,他的请求被server1
完成了。但是 server1
在内存中保留连接用户的映射。它寻找 client2
,但 client2
保存在 serverB
的内存中,因此消息永远不会到达那里。
通过使用背板,基本上来自一台服务器的每条消息都会广播到所有其他服务器。
One solution is to forward messages between servers, using a component called a backplane. With a backplane enabled, each application instance sends messages to the backplane, and the backplane forwards them to the other application instances.
取自SignalR Introduction to scaleout
一定要检查这个backplane with Redis from the SignalR documentation。
希望这对您有所帮助。祝你好运!