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]

RabbitMQ

TipusAgent de missatges
Versió estable3.6.10 / 3.6.10 / 25 de maig del 2017
LlicènciaMozilla Public License
Característiques tècniques
Sistema operatiuMultiplataforma
Escrit enErlang
Equip
Creador/sRabbit Technologies Ltd
Desenvolupador(s)SpringSource (VMWare)
Més informació
Lloc webrabbitmq.com
BlogBlog oficial Modifica el valor a Wikidata
Stack ExchangeEtiqueta Modifica el valor a Wikidata


X: RabbitMQ Modifica el valor a Wikidata

El projecte RabbitMQ consta de diferents parts:

  • El servidor d'intercanvi RabbitMQ.
  • Passarel·les per als protocols HTTPXMPP 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

modifica

Aquesta secció presenta una mostra de programa escrita en Python per a enviar i rebre missatges emprant una cua :

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()

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é

modifica

Referències

modifica
  1. «RabbitMQ - Messaging that just works» (en anglès). https://www.rabbitmq.com.+[Consulta: 28 juny 2017].
  2. «Part 1: RabbitMQ for beginners - What is RabbitMQ? - CloudAMQP» (en anglès). https://www.cloudamqp.com.+[Consulta: 28 juny 2017].
  3. «Messaging with RabbitMQ» (en anglès). https://spring.io.+[Consulta: 28 juny 2017].