KrólikMQ - RabbitMQ

KrólikMQ
Logo RabbitMQ.svg
Deweloper(zy) Oprogramowanie kluczowe
Wersja stabilna
3.8.19 / 5 lipca 2021 r .; 3 miesiące temu ( 05.07.2021 )
Magazyn github .com /rabbitmq
Napisane w Erlang
System operacyjny Wieloplatformowy
Rodzaj AMQP , oprogramowanie pośredniczące zorientowane na wiadomości
Licencja Licencja publiczna Mozilli
Strona internetowa www .rabbitmq .com

RabbitMQ to oprogramowanie typu open source do brokerów wiadomości (czasami nazywane oprogramowaniem pośredniczącym zorientowanym na wiadomości ), które pierwotnie zaimplementowało protokół Advanced Message Queuing Protocol (AMQP) i od tego czasu zostało rozszerzone o architekturę wtyczek w celu obsługi protokołu Streaming Text Oriented Messaging Protocol (STOMP) , MQ Telemetry Transport (MQTT) i inne protokoły.

Napisany w języku Erlang , serwer RabbitMQ jest zbudowany na platformie Open Telecom Platform do klastrowania i przełączania awaryjnego. Biblioteki klienta do interfejsu z brokerem są dostępne dla wszystkich głównych języków programowania. Kod źródłowy jest udostępniany na licencji Mozilla Public License .

Historia

Pierwotnie opracowany przez Rabbit Technologies Ltd., która powstała jako joint venture pomiędzy LShift i CohesiveFT w 2007 roku, RabbitMQ została przejęta w kwietniu 2010 roku przez SpringSource , oddział VMware . Projekt stał się częścią Pivotal Software w maju 2013 roku.

Projekt składa się z:

  • Serwer wymiany RabbitMQ
  • Bramki dla AMQP , HTTP , STOMP i MQTT protokołów
  • Biblioteki klienckie AMQP dla Java , .NET Framework i Erlang. (Klienci AMQP dla innych języków są dostępni od innych dostawców).
  • Platforma wtyczek umożliwiająca rozszerzanie, ze wstępnie zdefiniowaną kolekcją obsługiwanych wtyczek, w tym:
    • Wtyczka „Shovel”, która zajmuje się przenoszeniem lub kopiowaniem (replikowaniem) komunikatów z jednego brokera do drugiego.
    • Wtyczka „Federacja” umożliwiająca efektywne udostępnianie komunikatów pomiędzy brokerami (na poziomie giełdy).
    • Wtyczka „Zarządzanie”, która umożliwia monitorowanie i kontrolowanie brokerów i klastrów brokerów.

Przykłady

Ta sekcja zawiera przykładowe programy napisane w Pythonie (przy użyciu pakietu pika ) do wysyłania i odbierania wiadomości przy użyciu kolejki.

Wysyłanie

Poniższy fragment kodu nawiązuje połączenie, upewnia się, że istnieje kolejka odbiorców, następnie wysyła wiadomość i ostatecznie zamyka połączenie.

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

Otrzymujący

Podobnie następujący program odbiera komunikaty z kolejki i wyświetla je na ekranie: (Uwaga: ten przykład nie potwierdza odbioru komunikatu.)

#!/usr/bin/env python3
import pika

def callback(ch, method, properties, body):
    print(" [x] Received %r" % body)

connection = pika.BlockingConnection(pika.ConnectionParameters(host="localhost"))
channel = connection.channel()
channel.queue_declare(queue="hello")
print(" [*] Waiting for messages. To exit press Ctrl+C")
channel.basic_consume(queue="hello", on_message_callback=callback)
channel.start_consuming()

Zobacz też

Bibliografia

Dalsza lektura

Zewnętrzne linki