c# - 使用 Windows Azure 服务总线扩展 SignalR

标签 c# azure scalability signalr servicebus

我有一个应用程序,它使用 SignalR 连接我网站上的用户以进行聊天等操作。如果我只是第一次向公众开放我的网站,我会假设在使用的前几个月我只需要一个实例(只要需求不需要另一个实例)。我可以在不使用 Windows Azure 服务总线的情况下在同一个实例中运行我的 signalR 集线器类,然后在使用 2 个或更多实例时将其移至服务总线吗?

还有一个简单的附带问题,在 Windows Azure 服务总线网站上它说:

服务总线支持最多 100 个与实体的并发连接。

这是否意味着只有 100 个并发用户连接到服务总线?或 100 个实例并发连接?我可以看到,对于大型网站来说,只有 100 个并发用户是非常有限的,所以我假设这意味着实例?一旦您转移到具有并发连接用户的服务总线,对架构将如何工作有点困惑。

最佳答案

您的用户将连接到您的实例,并且您的实例将连接到服务总线。我并不是说 1 个实例 = 1 个连接(我不知道 SignalR.WindowsAzureServiceBus 内部如何工作),但运行几个实例不会达到限制。

SignalR.WindowsAzureServiceBus 将使用服务总线作为...服务总线并在实例之间分发消息,以确保您可以将 SignalR 与多个实例一起使用。

您确实可以在没有 Windows Azure 服务总线的单个实例中运行“正常”SignalR,并稍后将其更改为 SB 实现(有关步骤,请参阅此 wiki: http://www.asp.net/signalr/overview/performance/scaleout-with-windows-azure-service-bus )。但您应该考虑到,Windows Azure SLA 仅在您运行 2 个或更多实例时才适用。

关于c# - 使用 Windows Azure 服务总线扩展 SignalR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11695879/

相关文章:

c# - 帮助修复我的 KMP 搜索算法

c# - HtmlAgilityPack NextSibling.InnerText 值为空

Azure RDP 需要在客户端计算机上安装证书吗?

scala - 在云中部署和托管 scala?

c# - Resx 文件的本地化替代方案

C#克隆一个堆栈

c# - Azure Web 角色抛出 web.config 中无法识别的元素 'autoDiscover'

node.js - Azure 上的 npm start 出现错误 - EADDRNOTAVAIL

database-design - LAMP 托管在 AWS 云上——要重写哪些 PHP 代码?

iis - 如何跨多个 Web 服务器维护状态?