Compartir a través de


Procesamiento asíncrono de mensajes

Un escenario típico en el desarrollo de servicio de alta disponibilidad es la inclusión de sistemas asíncronos de mensajes que puedan ayudar a la aplicación a poder atender siempre las peticiones de los clientes.

Si dentro de Windows Azure queremos disponer de esta funcionalidad será necesario emplear el sistema de colas que ofrece Windows Azure Storage. El servicio de colas de Windows Azure proporciona un mecanismo fiable y persistente para la comunicación entre aplicaciones de Windows Azure.

Para poder interactuar con los clientes que residen fuera de la nube será necesario disponer de un Web Role capaz de atender las peticiones. Éste componente atenderá las peticiones y las incluirá dentro del sistema de colas de Azure.

Un Worker Role será el encargado de revisar de forma periódica los mensajes de la cola, leerlos y procesarlos.


Figura 1.- Arquitectura de una aplicación Web basada en Windows Azure

Cada cuenta de almacenamiento puede contener un número ilimitado de colas de mensajes y cada cola puede contener un número de mensajes ilimitado. La principal limitación en las colas de Windows Azure viene marcada por el hecho de que el tamaño máximo de mensaje es 8Kb.

Cuando un mensaje se lee desde una cola, el consumidor del mensaje es responsable de, tras procesarlo, eliminarlo. Una vez el mensaje es leído, durante un periodo de tiempo no estará disponible para otros consumidores. Si el mensaje no es borrado en ese intervalo de tiempo, su visibilidad es restablecida de manera que otros consumidores pueden procesarlo.