RabbitMQ

From Wikipedia, the free encyclopedia

Remove ads

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]

Dades ràpides Tipus, Versió estable ...
Remove ads
Remove ads

Parts

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.
Remove ads

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

Vegeu també

Referències

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads