RabbitMQ

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
RabbitMQ

RabbitMQ Logo
Basisdaten

Entwickler VMware
Aktuelle Version 3.13.1[1]
(29. März 2024)
Betriebssystem Plattformunabhängig
Programmiersprache Erlang[2]
Kategorie Advanced Message Queuing Protocol Message Oriented Middleware
Lizenz MPL-2.0[3]
www.rabbitmq.com

RabbitMQ ist eine Open Source Message Broker Software, die das Advanced Message Queuing Protocol (AMQP) implementiert. Der RabbitMQ-Server ist in Erlang geschrieben. Die Software wird entwickelt und gepflegt von Rabbit Technologies Ltd, einem Zusammenschluss von LShift und Cohesive FT, die im April 2010 von SpringSource erworben wurde. SpringSource war eine Abteilung von VMware, die im April 2013 in ein neu gegründetes Joint Venture Unternehmen zwischen VMware, EMC Corporation und General Electric mit Namen Pivotal Software Inc. ausgegliedert wurde.[4]

Beispiele[Bearbeiten | Quelltext bearbeiten]

Dieser Abschnitt zeigt Programmbeispiele in Python:

Senden[Bearbeiten | Quelltext bearbeiten]

Das folgende Programm baut eine Verbindung auf, stellt die Existenz der Empfänger-Warteschlange sicher, sendet die Nachricht und schließt die Verbindung:

#!/usr/bin/env python3
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('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()

Empfangen[Bearbeiten | Quelltext bearbeiten]

Entsprechend empfängt das folgende Programm Nachrichten aus der Warteschlange und gibt deren Inhalt auf dem Bildschirm aus:

#!/usr/bin/env python3
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()

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]