2012-07-27 46 views
5

Tengo una aplicación que usa SignalR para conectar usuarios en mi sitio para cosas como el chat. Si solo abro mi sitio al público, supongo que solo necesito una instancia para los primeros meses de uso (siempre que la demanda no requiera otra instancia). ¿Puedo ejecutar mi clase de hub de signalR en la misma instancia sin usar el Bus de servicio de Windows Azure y luego moverlo al bus de servicio una vez que uso 2 o más instancias?Scaling SignalR con Windows Azure Service Bus

también una pregunta rápida lado, en el sitio de Windows Azure Service Bus que dice:

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

¿Quiere esto decir sólo 100 usuarios simultáneos conectados al bus de servicio? o 100 conexiones concurrentes a instancias? Pude ver cómo solo 100 usuarios simultáneos podrían ser muy limitados en términos de sitios web a gran escala, ¿por lo que supongo que significa instancias? Un poco confundido sobre cómo funcionaría la arquitectura una vez que te mueves al autobús de servicio con usuarios conectados concurrentes.

+0

También puede considerar Redis. Eche un vistazo: https://github.com/SignalR/SignalR/wiki/SignalR-with-Redis-Running-on-a-Windows-Azure-Virtual-Machine – tugberk

Respuesta

9

Sus usuarios se conectarán a sus instancias y serán sus instancias las que se conectarán al Bus de servicio. No estoy diciendo 1 instancia = 1 conexión (no sé cómo funciona SignalR.WindowsAzureServiceBus internamente), pero no alcanzará los límites con unas pocas instancias ejecutándose.

SignalR.WindowsAzureServiceBus utilizará el bus de servicio como un ... bus de servicio y distribuirá mensajes entre instancias para asegurarse de que puede usar SignalR con varias instancias.

Y puede ejecutar el SignalR 'normal' en una sola instancia sin Windows Azure Service Bus y cambiarlo a la implementación de SB más tarde (consulte esta wiki para conocer los pasos: http://www.asp.net/signalr/overview/performance/scaleout-with-windows-azure-service-bus). Pero debe tener en cuenta que el Acuerdo de nivel de servicio de Windows Azure solo se aplica si tiene 2 instancias o más ejecutándose.

Cuestiones relacionadas