2012-07-27 9 views
5

Ich habe eine Anwendung, die SignalR verwendet, um Benutzer auf meiner Website für Dinge wie Chat zu verbinden. Wenn ich meine Site erst der Öffentlichkeit öffne, würde ich annehmen, dass ich für die ersten paar Monate nur eine Instanz brauche (solange die Nachfrage keine andere Instanz benötigt). Kann ich meine signalR-Hub-Klasse in derselben Instanz ausführen, ohne Windows Azure Service Bus zu verwenden, und sie dann auf den Servicebus verschieben, wenn ich zwei oder mehr Instanzen verwende?Scaling SignalR mit Windows Azure Service Bus

Auch eine schnelle Seiten Frage, auf der Windows Azure Service Bus-Website heißt es:

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

dies den Linienbus verbunden nur 100 gleichzeitigen Benutzer bedeutet? oder 100 gleichzeitige Verbindungen zu Instanzen? Ich konnte sehen, wie nur 100 gleichzeitige Benutzer in Bezug auf groß angelegte Websites sehr begrenzt sein könnten, also ich nehme an, es bedeutet Instanzen? Ein wenig verwirrt darüber, wie die Architektur funktionieren würde, sobald Sie mit gleichzeitig verbundenen Benutzern zum Servicebus ziehen.

+0

Sie können auch Redis betrachten. Schau mal: https://github.com/SignalR/SignalR/wiki/SignalR-mit-Redis-Running-in-a-Windows-Azure-Virtual-Machine – tugberk

Antwort

9

Ihre Benutzer werden mit Ihren Instanzen verbunden, und Ihre Instanzen werden mit dem Servicebus verbunden. Ich sage nicht 1 Instanz = 1 Verbindung (ich weiß nicht, wie SignalR.WindowsAzureServiceBus intern funktioniert), aber Sie werden die Grenzen mit ein paar Instanzen nicht erreichen.

SignalR.WindowsAzureServiceBus verwendet den Servicebus als ... Servicebus und verteilt Nachrichten zwischen Instanzen, um sicherzustellen, dass Sie SignalR mit mehreren Instanzen verwenden können.

Und Sie können tatsächlich das 'normale' SignalR in einer einzigen Instanz ohne Windows Azure Service Bus ausführen und es später in die SB-Implementierung ändern (siehe dieses Wiki für die Schritte: http://www.asp.net/signalr/overview/performance/scaleout-with-windows-azure-service-bus). Sie sollten jedoch berücksichtigen, dass Windows Azure SLA nur gilt, wenn mindestens zwei Instanzen ausgeführt werden.

Verwandte Themen