viernes, 10 de octubre de 2014

Message QEUE RabbitMQ




Probablemente muchos desarrolladores (me incluyo), hemos oido poco sobre cola de mensajes es una perspectiva distinta a lo que comúnmente estamos acostumbrados : las peticiones y respuestas que suceden en la red. Me enfocare en describir el uso MQ con la herramienta RabbitMQ.

Primero que es Message Qeue
Por concepto es la comunicación via mensajes entre sistemas  donde los emisores producen mensajes y para que estos lleguen a su destinatario deben ser entregados a un intercambiador que los colocará en la cola del respectivo destinatario, finalmente el destinatario puede ir progresivamente desencolando y procesando los mensajes o dejar que el intercambiador se los haga llegar, esto por medio de diferentes tipos de rutas.


¿Por qué utilizar RabbitMQ? 

Sirve como una buena herramienta backend de mensajería para hacer PUB/SUB, etc en nuestro middleware. 

  • Muy robusta 
  • Se puede configurar para utilizar mensajes persistentes 
  • Fácil de utilizar 
  • Tiene enlaces para todos los idiomas principales 
  • Open Source 
  • Un montón de plugins 
  • Ampliamente utilizado 
  • Una buena documentación 
  • Un montón de tutoriales
  • Un montón de patrones de uso  
  • oportunidades de expansión


Uso

  1. Instalar el backend en un server
  2. Conectarse a el usando su lenguajes de edicion.
  3. Definir los intercambios y sus políticas directamente en el código 
  4. Enviar mensajes


Patrones comunes de uso

Simple Messaging


Simple usado  para desacoplar los componentes 
Un productor P produce mensajes, mientras que el consumidor C lo consume. 
At-most-once semántica para colas persistentes 
At-least-once semántica si se utilizan reconocimientos


Work Queues

Múltiple consumidores comparten cargas de trabajo
Los mensajes pueden ser o bien prebuscados por los workers o entregarse cada vez que un worker está a disposición


Pub Sub



Aquí el intercambio X se encarga de la entrega de mensajes igual que en el caso típico, se utiliza la entrega de conductores de salida 


Las colas se generan para los consumidores, en los que será enviado sus mensajes relevantes.


Routing

(Pub/sub + topics)
Si varios consumidores escuchan el mismo topic a continuación se utiliza fanout delivery
Temas jerárquicos también se pueden utilizar: 
fridge.context. * 
*. *. error 
meetingroom.projector 

meetingroom. *


RPC

Las solicitudes y las respuestas son coincidentes por un ID de correlación 

El cliente también especifica que el servidor debe enviar la respuesta





Gracias








































No hay comentarios:

Publicar un comentario