RabbitMQ

RabbitMQ és un software de negociació de mensages de còdic obert que funciona com un middleware de mensageria. Implementa l'estàndart Advanced Message Queuing Protocol (AMQP). El servidor RabbitMQ està escrit en Erlang i utilisa el framework Open Telecom Platform (OTP) per a construir les seues capacitats d'eixecució distribuïda i conmutación davant errors. Rabbit Technologies Ltd., la companyia que ho desenrolla, va ser adquirida en abril de 2010 per la divisió SpringSource de VMWare. A partir d'este moment, és esta última companyia la que desenrolla i dona soport per a RabbitMQ. El còdic font està lliberat baix la llicència Mozilla Public License. A partir de maig de 2013, per una unió d'empreses, Pivotal és el nou patrocinador del proyecte
Parts del software
El proyecte RabbitMQ consta de diferents parts:
- El servidor d'intercanvi RabbitMQ, que rep els mensages i els almagasena en coes d'intercanvi. Els clients podran despuix recuperar-els.
- Passareles per als protocols HTTP, XMPP i STOMP.
- Biblioteques de clients per a Java, framework . NET i Python.
- El plugin Shovel (en anglés: pala) que s'encarrega de replicar mensages entre corredors de mensages.
Eixemples
Esta secció dona eixemples d'us en Python (usant el paquet Pika) per a un emissor i un receptor de mensages.
Emissor
El següent fragment de còdic establix la conexió, s'assegura de que la coa de mensages existix, envia el mensage i finalment tanca la conexió.
#!/usr/bin/env python
import pika # Importem el paquet Pika
connection = pika. BlockingConnection(pika. ConnectionParameters(host='localhost')) # Obtenim la conexió al servidor
channel = connection. channel() # Cregam el canal de comunicació
channel. queue_declare(queue='hello') # Declarem la coa de mensages
channel. basic_publish(exchange='', routing_key='hello', body='Hola Món!') # Publiquem el mensage en la coa
print(" [x] Sent 'Hola Món!'") # Vàrem mostrar lo enviat per pantalla
connection. close() # Tanquem la conexió.Receptor
Similarmente, el següent programa rep el mensage i ho imprimix en 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_consumix(queue='hello', on_message_callback=callback)
channel. start_consuming()Vore també
Referències
- Este artícul conté una traducció derivada de «RabbitMQ» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.