【发布时间】:2018-01-28 16:13:03
【问题描述】:
我将制作一个无状态、可扩展的 Web 应用程序。这是我的第二天性,不是问题。
但是,这个将使用 SignalR,因此将与每个用户建立 WebSocket 连接。
假设我的 Web 应用程序扩展到 5 个不同的 Web 服务器,处理来自 5000 个并发用户的负载。这些用户将建立一个 WebSocket 连接,即使负载均衡器会确保负载分布在 5 个 Web 服务器之间,但每个用户都将连接到一个特定的 Web 服务器。
现在问题来了。如果发生事件并且我想将此事件发送给我的一位连接用户,我该怎么做?
用户可以连接到任何网络服务器,所以我想要么我需要一些数据库来跟踪哪些用户连接到了哪个网络服务器?或者我需要将所有消息发送到所有网络服务器,如果用户连接,它们会将消息传递给用户?
后者似乎不可扩展。第一个似乎是我必须做的,除非这里有人可以告诉我应对这一挑战的最佳实践方法。
【问题讨论】:
-
你在the docs上没有找到有用的东西吗?
-
我没有在文档中寻找这个。我只希望 SignalR 文档说明它本身是如何工作的,而不是在我描述的这种情况下如何使用它。
-
好吧,我提到的链接显示了如何在您的场景中使用它。它描述了使用背板的整体架构。你读过吗?
-
我很抱歉。我没有看到它是一个链接,我以为你只是问我是否在文档中作为一般查询查看过
标签: c# asp.net .net azure signalr