RabbitMQ
RabbitMQ és un agent de missatges o broker de codi obert que implementa el protocol AMQP (acrònim d'Advanced Message Queuing Protocol). El servidor RabbitMQ està escrit amb el llenguatge de programació Erlang i construït amb l'entorn Open Telecom Platform. Les biblioteques RabbitMQ són disponibles per a la majoria de llenguatges de programació. RabbitMQ va ser creat per Rabbit Technologies Ltd. El 2010 aquesta companyia va ser adquirida per SpringSource, una divisió de VMware.[1][2][3]
Tipus | Agent de missatges |
---|---|
Versió estable | 3.6.10 / 3.6.10 / 25 de maig del 2017 |
Llicència | Mozilla Public License |
Característiques tècniques | |
Sistema operatiu | Multiplataforma |
Escrit en | Erlang |
Equip | |
Creador/s | Rabbit Technologies Ltd |
Desenvolupador(s) | SpringSource (VMWare) |
Més informació | |
Lloc web | rabbitmq.com |
Blog | Blog oficial |
Stack Exchange | Etiqueta |
| |
Parts
modificaEl projecte RabbitMQ consta de diferents parts:
- El servidor d'intercanvi RabbitMQ.
- Passarel·les per als protocols HTTP, XMPP i STOMP.
- Biblioteques de clients per a Java i el framework .NET. (Biblioteques similars per a d'altres llenguatges també es troben disponibles).
- El plugin Shovel (pala) que s'encarrega de copiar (replicar) missatges des d'un corredor de missatges a d'altres.
Exemple
modificaAquesta secció presenta una mostra de programa escrita en Python per a enviar i rebre missatges emprant una cua :
Enviar
modificaEl següent codi estableix una connexió, assegura que la cua del recipient existeix, llavors envia un missatge i finalment tanca la connexió :
#!/usr/bin/env python
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
channel.basic_publish(exchange='', routing_key='hello', body='Hello World!')
print(" [x] Sent 'Hello World!'")
connection.close()
Rebre
modificaIgualment, el següent codi rep missatges de la cua i els visualitza a la pantalla :
#!/usr/bin/env python
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
channel = connection.channel()
channel.queue_declare(queue='hello')
print(' [*] Waiting for messages. To exit press CTRL+C')
def callback(ch, method, properties, body):
print(" [x] Received %r" % body)
channel.basic_consume(callback, queue='hello', no_ack=True)
channel.start_consuming()
Vegeu també
modifica- Agent de missatges
- Altres brokers : Apache ActiveMQ, Mosquitto, HornetQ
Referències
modifica- ↑ «RabbitMQ - Messaging that just works» (en anglès). https://www.rabbitmq.com.+[Consulta: 28 juny 2017].
- ↑ «Part 1: RabbitMQ for beginners - What is RabbitMQ? - CloudAMQP» (en anglès). https://www.cloudamqp.com.+[Consulta: 28 juny 2017].
- ↑ «Messaging with RabbitMQ» (en anglès). https://spring.io.+[Consulta: 28 juny 2017].