lunes, 16 de agosto de 2010

Utilización de Colas (Queue) (Uso de Colas)

¿Qué es una Cola (Queue)?

En la actualidad las colas son la herramienta por excelencia para cumplir con tres conceptos fundamentales de arquitectura:
  • Distribución de carga
  • Desacoplamiento
  • Transaccionabilidad y Tolerancia
Distribución de carga
Las Colas tienen tres características básicas que favorecen su participación en la distribución de carga:
  • Múltiples clientes simultáneos, varios clientes (Agentes) pueden estar esperando mensajes que se depositen la cola al mismo tiempo. Estos Agentes pueden estar en el mismo servidor o en distintos servidores.

  • Exclusividad de mensajes, un mensaje que es tomado (decolado) por uno de los Agentes es bloqueado para que no sea decolado por otro Agente.

  • Centralización de la distribución, al poner la cola en un servidor central es muy fácil su administración así como también agregar agentes o quitarlos.
Desacoplamiento
Al ser la Cola un intermediario por definición, existe una separación entre el proveedor del mensaje y el consumidor del mismo. El único requisito es que se sepa manejar el mensaje.

Transaccionabilidad y Tolerancia
Una de las características transaccionales de las colas es que si uno de los agentes fracasa en su ejecución el mensaje es devuelto a la cola para ser procesado por otro agente que tal vez tenga éxito.

El rollback puede darse por dos razones:
  • Voluntaria, el programador lo genera porque ha detectado que hay un error que puede ser reintentado, casos como IO (Sin espacio en disco, conexión caída, etc.).

  • Involuntaria, se cayo el servidor, problema de hardware, etc.

No hay comentarios:

Publicar un comentario