背板与粘性负载均衡器

Backplane vs Sticky Load balancer

我正在开发 SignalR application.There 将是我的应用程序的多个实例 运行 在负载均衡器后面的不同服务器上。我阅读了有关背板的信息,发现它主要用于服务器故障的目的并处理多个服务器之间的请求跳转。(可能还有其他好处)。

请考虑以下情况并建议我是否还需要背板。

我正在使用粘性负载平衡(即来自客户端的所有后续请求都转到同一台服务器)?所以在好的情况下没有请求跳跃的机会。

我如何处理服务器宕机场景 - 当服务器宕机时。客户端尝试重新连接并收到“404-未找到”error.At 这次客户端启动新连接并且它有效。

开发SignalR应用程序时使用背板的主要原因来自以下场景:

  • 假设您有 2 台 Web 服务器托管您的应用程序,serverAserverB
  • 您有 2 个客户端连接到您的应用程序,client1serverA 服务,client2serverB
  • 服务

开发 SignalR 应用程序时的一个很好的假设是您希望这两个客户端相互通信。因此 client1client2 发送消息。

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

希望这对您有所帮助。祝你好运!