4. Pi rational pirational@yahoo.com.mx México DF 18-04-2014 02 / 09
Introducción al protocolo AMQP
Prologo
Metodología
Con la finalidad de reducir la curva de aprendizaje se optado por una aproximación del tipo
dividir para vencer, la cual se basa en dividir un tema en varios temas de menor
complejidad y presentando la información como un conjunto de notas o definiciones
pequeñas y los procesos como un conjunto de pasos fáciles de seguir.
Tema
El tema a tratar en esta presentación es una introducción al protocolo AMQP, describiendo
sus principales características y componentes.
Autor
Abraham Morales comentarios a pirational@yahoo.com.mx
5. Pi rational pirational@yahoo.com.mx México DF 18-04-2014 03 / 09
Introducción al protocolo AMQP
Introducción
El protocolo AMQP (Advanced Message Queuing Protocol) es un protocolo de
comunicaciones abierto; diseñado como un servicio estándar altamente disponible para el
intercambio de mensajes de misión critica y para hacer posible el intercambio de mensajes
empresariales entre diferentes plataformas.
El protocolo AMQP tiene como principales características:
● Protocolo de capa 7 (nivel de aplicación) en el modelo OSI
● Puerto estándar 5674
● Protocolo de transporte TCP y protocolo de red IP
● Protocolo orientado a mensajes
● Encolamiento (queuring)
● Enrutamiento (punto a punto y publicación suscripción)
● Exactitud y Seguridad
● Los sistemas no necesiten estar disponibles de forma simultanea
6. Pi rational pirational@yahoo.com.mx México DF 18-04-2014 04 / 09
Introducción al protocolo AMQP
Arquitectura
AMQP es un middleware protocol que define una capa de transporte (wire level
protocol) como una capa semántica de alto nivel (functional layer).
El siguiente diagrama muestra la arquitectura simplificada del protocolo:
Rutes
Broker
Queue
Mensaje
Mensaje
Productor Consumidor
Queue
Queue
Bindings
Exchange
7. Pi rational pirational@yahoo.com.mx México DF 18-04-2014 05 / 09
Introducción al protocolo AMQP
Arquitectura
Productor Es la entidad que envía o publica un mensaje.
Consumidor Es la entidad que recibe o consume un mensaje.
Broker Es la entidad que actúa como intermediario entre el consumidor y el productor.
Exchange Es la entidad que toma los mensajes enviados al Broker por el Productor y los
enruta a una o mas Colas.
Binding Es la entidad que determina las reglas a ser utilizadas por los Exchanges, estas
reglas son aplicadas entre otras cosas para determinar como enrutar un mensaje a una
Cola, es decir ligan un Exchange a una Cola.
Queue o Cola Es la entidad encargada de almacenar el mensaje que sera consumido por
el Consumidor.
Exchanges Bindings y Queues forman parte del Broker.
8. Pi rational pirational@yahoo.com.mx México DF 18-04-2014 06 / 09
Introducción al protocolo AMQP
Exchange
Existen cuatro tipos básicos de Exchanges, los cuales difieren únicamente del algoritmo
que utilizan para determinar que Cola debe de recibir los mensajes y estos son:
● Direct exchange Los mensajes son enviados a las Colas cuyo binding key sea idéntico
al routing key del mensaje (comunicación per to per).
● Fanout exchange Envía cada mensaje a cada una de las Colas ligadas a ese
Exchange (comunicación broadcasting).
● Topic exchange Los mensajes son enviados a las Colas cuyo patrón definido en el
binding key concuerde con la routing key del mensaje (comunicación multicasting).
● Headers exchange Los mensajes son enviados a las Colas que cumplan con la
información contenida en los encabezados del mensaje(comunicación basada en meta
datos)
9. Pi rational pirational@yahoo.com.mx México DF 18-04-2014 07 / 09
Introducción al protocolo AMQP
Queue
Las Colas almacenan hasta que son consumidos por los Consumidores.
Cada Cola esta unida a un Exchange por omisión el cual provee de un método simple y
directo para publicar mensajes.
Los Consumidores reciben mensajes subscribiendo se a la Cola que contiene el mensaje.
Estos subscriptores pueden ver entre los mensajes sin consumirlos, dejando los en la cola
para que puedan ser vistos y alternativamente un Consumidor puede consumir un
mensaje de la Cola, eliminando lo de la misma.
10. Pi rational pirational@yahoo.com.mx México DF 18-04-2014 08 / 09
Introducción al protocolo AMQP
Sesiones
Una Sesión es una comunicación identificada de forma única entre un cliente y un Broker.
Múltiples sesiones diferentes pueden compartir la misma conexión a un Broker.
Una aplicación puede tener múltiples conexiones abiertas con un Broker.
Transacciones
Una transacción es una operación atómica que involucrara un grupo de publicaciones de
mensajes o aceptación de los mismo, lo que implica que todas las operaciones serán éxito
o fracaso.
Persistencia
El protocolo define un mecanismo de persistencia para los mensajes mediante el cual,
encaso de una falla del Broker los mensajes puedan ser recuperados.
11. Pi rational pirational@yahoo.com.mx México DF 18-04-2014 09 / 09
Introducción al protocolo AMQP
Referencias
Introducción al protocolo AMQP; [en linea] 15-04-2014; Disponible en la web:
http://pirational.260mb.net/es/tutoriales/00amqp.html
AMQP 0.9.1 Model Explained; [en linea] 15-04-2014; Disponible en la web:
http://rubydoc.info/github/ruby-amqp/amqp/master/file/
docs/AMQP091ModelExplained.textile
AMQP is the Internet Protocol for Business Messaging; [en linea] 15-04-2014;
Disponible en la web: http://www.amqp.org/about/what
Chapter 1. Introduction to MRG Messaging; [en linea] 15-04-2014; Disponible en la web:
https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_MRG/1.1/
html/Messaging_User_Guide/chap-Messaging_User_Guide-Introduction_to_RHM.html