我有一个应用程序使用SignalR连接我网站上的用户进行聊天等事情。如果我只是第一次向公众开放我的网站,我会假设我在使用的前几个月只需要一个实例(只要需求不需要另一个实例)。我可以在不使用Windows Azure Service Bus的情况下在同一实例中运行我的signalR hub类,然后在使用2个或更多实例后将其移动到服务总线吗?
还有一个快速的问题,在Windows Azure Service Bus站点上说:
The Service Bus enables up to 100 concurrent connections to an entity.
这是否意味着只有100个并发用户连接到服务总线?或100个并发连接到实例?我可以看到,只有100个并发用户在大型网站方面可能非常有限,所以我认为它意味着实例?一旦你转移到具有并发连接用户的服务总线,对架构如何工作有点困惑。
答案 0 :(得分:9)
您的用户将连接到您的实例,并且您的实例将连接到服务总线。我不是说1个实例= 1个连接(我不知道SignalR.WindowsAzureServiceBus如何在内部工作),但是在运行几个实例时你不会达到极限。
SignalR.WindowsAzureServiceBus将使用Service Bus作为...服务总线,并在实例之间分发消息,以确保您可以将SignalR与多个实例一起使用。
您确实可以在没有Windows Azure Service Bus的单个实例中运行“正常”SignalR,并在以后将其更改为SB实现(请参阅此Wiki以了解步骤:http://www.asp.net/signalr/overview/performance/scaleout-with-windows-azure-service-bus)。但是,您应该考虑到Windows Azure SLA仅在您运行2个或更多实例时才适用。