RabbitMQ
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) | ||||||||
Fonts de codi
| |||||||||
Més informació | |||||||||
Lloc web | rabbitmq.com | ||||||||
Blog | Blog oficial | ||||||||
Stack Exchange | Etiqueta | ||||||||
| |||||||||
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]
Parts
El 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
Aquesta secció presenta una mostra de programa escrita en Python per a enviar i rebre missatges emprant una cua :
Enviar
El 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
Igualment, 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é
- Agent de missatges
- Altres brokers : Apache ActiveMQ, Mosquitto, HornetQ
Referències
- ↑ «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].