Pregunta

Estoy creando una aplicación que quiero poner en la nube. Esta aplicación tiene una función principal.

Aloja sesiones de CLIENTE de socket en nombre de otros usuarios (piense en Beejive IM para iPhone, donde aloja sesiones de MI para que los clientes mantengan el estado en esas redes de MI, permitiendo que el cliente se conecte / desconecte a voluntad, sin romper el Conexión de red de MI).

Ahora, la forma en que lo he planeado ahora, es que una 'instancia de trabajador' probablemente solo puede manejar un número finito de sesiones de clientes (digamos 50,000 por el argumento). Esas sesiones serán tareas de trabajadores de larga duración.

El problema que estoy tratando de entender es que a veces tendré que realizar tareas en sesiones específicas del cliente (por ejemplo: si necesito desconectar una sesión del cliente). Con Azure, ¿podría poner en cola una tarea más pequeña que solo la instancia que aloja esa sesión de cliente específica podría eliminar en cola?

En este momento estoy considerando a GoGrid como mi proveedor, y resuelvo este problema usando el software Active Messaging Queue de Apache. Mi aplicación web pone en cola las tareas de 'desconexión' que se asignan a un ID de instancia específico. Por lo tanto, cada sesión de cliente se asigna a una identificación de instancia específica. La instancia solo elimina las tareas de 'desconexión' que se le asignan.

Me pregunto si es factible hacer algo similar en Azure y cómo lo haría en general. Me gusta la idea de no tener que configurar muchas máquinas virtuales diferentes para escalar, sino simplemente implementar un solo paquete. Además, sería bueno utilizar las Colas de Azure en lugar de integrar un producto de terceros como Apache ActiveMQ o incluso MSMQ.

¿Fue útil?

Solución

Me preocuparía mucho crear una aplicación de producción en Azure hasta que el conjunto de características, los precios y los términos de licencia estén finalizados. Para empezar, ni siquiera puede hacer una comparación de costos entre ella y, p. GoGrid o EC2 o Mosso. Así que no veo cómo podría terminar siendo un favorito. Además, sabemos que todos estos sistemas tendrán problemas técnicos a medida que maduren. Los servicios de Amazon tienen un uso mucho más amplio que cualquiera de los otros, y han estado disponibles públicamente durante muchos años. En mi humilde opinión, elegir Azure es una receta para el dolor a medida que se estabilizan.

¿Ha considerado el Servicio de cola simple para hacer cola en Amazon?

Otros consejos

Creo que absolutamente puedes usar Windows Azure para esto. Mi recomendación sería crear una cola para cada sesión que esté rastreando. Luego ponga en cola el mensaje de desconexión (por ejemplo) en la cola para esa sesión. La instancia de trabajador que maneja esa conexión debería ser la única encuesta en esa cola, por lo que debería manejar realizar la tarea en esa conexión.

Con respecto a las conexiones de socket de alojamiento de aplicaciones para que los clientes se conecten, verificaría dos veces lo que está permitido, ya que creo que solo se pueden hacer conexiones HTTP y HTTPS con Azure.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top