2012-07-27 81 views
5

我有一個應用程序使用SignalR來連接用戶在我的網站上進行聊天等操作。如果我只是第一次向公衆開放我的網站,我會假設我在使用頭幾個月只需要一個實例(只要需求不需要另一個實例)。我是否可以在不使用Windows Azure服務總線的情況下在同一實例中運行我的signalR集線器類,然後在我使用2個或更多實例時將其移至服務總線?使用Windows Azure服務總線來擴展SignalR

另外一個快側的問題,在Windows Azure的服務總線的網站,它說:

The Service Bus enables up to 100 concurrent connections to an entity.

這是否意味着只有100連接到服務總線併發用戶?或100個併發連接到實例?我可以看到只有100個併發用戶在大型網站方面是非常有限的,所以我假設它意味着實例?在與同時連接的用戶移動到服務總線後,如何構建工作將會有點困惑。

+0

你也可以考慮Redis。看看:https://github.com/SignalR/SignalR/wiki/SignalR-with-Redis-Running-on-a-Windows-Azure-Virtual-Machine – tugberk 2012-07-27 22:39:02

回答

9

您的用戶將連接到您的實例,並且這將是您的實例連接到服務總線。我並不是說1個實例= 1個連接(我不知道SignalR.WindowsAzureServiceBus是如何在內部工作的),但是在運行幾個實例的時候你不會達到極限。

SignalR.WindowsAzureServiceBus將使用服務總線作爲...服務總線並在實例之間分發消息,以確保您可以將SignalR用於多個實例。

您確實可以在沒有Windows Azure Service Bus的情況下在單個實例中運行'正常'SignalR,並稍後將其更改爲SB實施(請參閱此維客的步驟:http://www.asp.net/signalr/overview/performance/scaleout-with-windows-azure-service-bus)。但是您應該考慮到,Windows Azure SLA僅適用於運行2個或更多實例的情況。