RabbitMQ

Versione del 21 apr 2018 alle 11:55 di ZimbuBot (discussione | contributi) (WPCleaner v1.43 - Disambigua corretto un collegamento - Erlang)

RabbitMQ è un message-oriented middleware (detto anche broker di messaggistica) che implementa il protocollo Advanced Message Queuing Protocol (AMQP). Il server RabbitMQ è scritto in Erlang e si basa sul framework Open Telecom Platform (OTP) per la gestione del clustering e del failover. Le librerie client per interfacciarsi a questo broker sono disponibili per diversi linguaggi.

RabbitMQ
software
Logo
Logo
Schermata di esempio
Schermata di esempio
Generemessage-oriented middleware (non in lista)
SviluppatorePivotal
Ultima versione3.6.9 (2017 marzo 29; 8 anni fa)
Sistema operativoMultipiattaforma
LinguaggioErlang
LicenzaMozilla Public License
(licenza libera)
LinguaInglese
Sito webwww.rabbitmq.com/

Storia

Rabbit Technologies è nata nel 2007 come una joint venture tra LShift e CohesiveFT, ed è stata acquisita nell'aprile 2010 da SpringSource, una divisione di VMware. Il progetto è diventato parte del Pivotal Software a maggio 2013.

Esempi

In questa sezione si trova un esempio di programma scritto in Python per inviare e ricevere messaggi su una coda.

Invio

Il seguente codice stabilisce una connessione, controlla l'esistenza della coda, invia il messaggio e chiude la connessione:

#!/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()

Ricezione

Il seguente codice stabilisce una connessione, controlla l'esistenza della coda, riceve il messaggio e lo stampa a schermo:

#!/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()

Voci correlate

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica