Rabbitmq

De josalba
Ir a la navegación Ir a la búsqueda

RabbitMQ es un software de negociación de mensajes de código abierto que funciona como un middleware de mensajería.
Rabbit.png

DOCKER

Crear contenedor

docker run -d -p 15672:15672 -p 5672:5672 --name rabbit rabbitmq:3-management

Conectarse al servidor

http://localhost:15672/

USER

El usuario y contraseña por defecto son:

Tipo Valor
User guest
Passwd guest


Consumidores y productores

En pocas palabras, los productores crean mensajes y los consumidores los reciben. Su aplicación puede ser un productor cuando necesita enviar un mensaje a otra aplicación o puede ser un consumidor cuando necesita recibir un mensaje.

Productor

Los productores crean mensajes y los publican (envían) a un servidor intermediario (en este caso, RabbitMQ). Los productores crean mensajes y los etiquetan para enrutarlos.

Consumidor

Los consumidores se conectan a un servidor de agentes y se suscriben a una cola, que es como un buzón con nombre. Siempre que llega un mensaje a un buzón de correo en particular, RabbitMQ lo envía a uno de los consumidores suscritos / que escuchan. Las etiquetas adjuntas al mensaje no se transmiten durante el enrutamiento. Como resultado, el consumidor solo debería recibir una parte del mensaje: la carga útil. RabbitMQ no revela el productor / remitente a menos que el productor incluya ese mensaje en la carga útil del mensaje.

Estructura

Exchange

Es como llega los mensajes a una cola. Siempre que desee enviar un mensaje a un consumidor, primero debe enviarlo a un intercambio. Luego, en base a ciertas reglas o claves de enrutamiento, RabbitMQ decidirá a qué cola debe entregar el mensaje. Las reglas, o claves de enrutamiento, le permiten vincular colas a intercambios. RabbitMQ intentará hacer coincidir la clave de enrutamiento en el mensaje con las utilizadas en los enlaces. Luego, el mensaje se enviará a la cola en función de uno de los tres tipos de intercambio: fanout, topic o directo.

Fanout Exchange

Este tipo de intercambio transmitirá todos los mensajes que reciba a todas las colas vinculadas a él. Se ignorará cualquier clave de enrutamiento proporcionada con el mensaje publicado.

Topic Exchange

En este tipo de intercambio, los mensajes se envían a las colas según la clave de enrutamiento. Esto significa que los mensajes enviados a un intercambio de temas deben tener una clave de enrutamiento específica que debe ser una lista de palabras, delimitada por puntos (ejemplo, 'acs.deviceoperations.'). La redacción está limitada a 255 bytes. La clave de enlace debe tener el mismo formato que la clave de enrutamiento. Como resultado, un mensaje enviado con una clave de enrutamiento particular se entregará a cada cola que esté vinculada con la clave de vinculación correspondiente.
La clave de enlace permite estas reglas de expresión:
* (estrella) puede sustituir exactamente una palabra.
# (hash) puede sustituir cero o más palabras.
Cuando una cola está vinculada con la clave de enlace "#" (hash), recibirá todos los mensajes, independientemente de la clave de enrutamiento, como en el intercambio de distribución.

Direct Exchange

Cuando se declara una cola, se vincula automáticamente al intercambio que usa el nombre de la cola como clave de enrutamiento. Si la clave de enrutamiento coincide, el mensaje se envía a la cola correspondiente.

Queue ( Colas )

Las colas son como buzones de correo con nombre: aquí es donde los mensajes enviados esperan para ser consumidos. Cuando un consumidor se suscribe a una cola, los mensajes se envían inmediatamente al consumidor suscrito.

Expirar queue

Las colas pueden expirar con reglas, si no se estan usando.

Police

Puede eliminar colas, seleccionando por ejemplo colas que empiecen por una cadena de texto, etc.

Channel

Canales creados.

Biografia

Descripción URL
Instalar https://medium.com/dev-genius/rabbitmq-with-docker-on-windows-in-30-minutes-172e88bb0808
PHP https://www.rabbitmq.com/tutorials/tutorial-one-php.html
JAVA https://www.rabbitmq.com/tutorials/tutorial-one-java.html