我无法确定我的场景是否需要使用 Signalr 背板。不幸的是,我无法获得测试环境,我需要自己对此进行测试,所以我来到这里;)
在我的场景中,我们使用 signalr 从服务器应用程序(Windows 服务)与特定客户端(使用连接 ID)进行通信。当客户端访问某个页面时,我们会连接到信号器 OnConnected 事件并注册用户以在我们的数据存储中接收通知。现在我们存储连接 id、它们来自的服务器的 IP 以及其他一些特定于应用程序的信息。
当服务器进程运行并确定它需要向客户端发送消息时,它会使用客户端连接/订阅(代理被缓存,顺便说一句)时捕获的 IP 构造一个代理并发送消息。
这现在工作正常。但是,我担心这在负载平衡的情况下不起作用。我在想如果使用网络套接字没有问题,但假设它回退到长轮询。这不会发生吗:
我与这种想法相去甚远吗?我试图避免使用背板,因为每个横向扩展选项都给我们带来了问题。
简短的回答是肯定的,在负载平衡的环境中您将始终需要背板
较长的版本,您有 2 个服务器 Server A 和 B 负载平衡。用户连接到 A ,用户可以自愿断开连接或通过网络超时,或通过 signalR 刷新(有几个 bug 就此打开,这是一个一定的回归,但在未来的版本中仍然可以重新合并,与使用哪种通信无关)但基本上用户有时会发现他自己“突然”连接到服务器 B。现在服务器 A 将无法向用户发送数据。
| 归档时间: |
|
| 查看次数: |
1098 次 |
| 最近记录: |