Heim  >  Artikel  >  Backend-Entwicklung  >  Grundlegende Konzepte und Prinzipbeispiele von RabbitMQ

Grundlegende Konzepte und Prinzipbeispiele von RabbitMQ

零下一度
零下一度Original
2017-06-23 16:35:143135Durchsuche

Grundlegende Konzepte und Prinzipien von RabbitMQ

1.AMQP, Advanced Message Queuing Protocol, ist ein offener Standard für Protokolle auf Anwendungsebene, der für die Nachrichtenorientierung entwickelt wurde Middleware.

2.RabbitMQ ist eine Open-Source-AMQP-Implementierung und die Serverseite ist in Erlang-Sprache geschrieben.

3.Kanal

Der Kanal ist für uns die wichtigste Schnittstelle für den Umgang mit RabbitMQ. Die meisten unserer Geschäftsvorgänge werden in der Kanalschnittstelle abgeschlossen, einschließlich „Warteschlange definieren“. Definieren Sie Exchange, binden Sie Warteschlange und Exchange, veröffentlichen Sie Nachrichten usw.

4.Exchange (Der Produzent sendet die Nachricht an den Exchange (Exchange), und der Exchange leitet die Nachricht an eine oder mehrere Warteschlangen weiter (oder verwirft sie), der üblicherweise verwendete Exchange-Typ von RabbitMQ Es gibt vier Typen: Fanout, Direkt, Thema, Header)

5.Warteschlange (RabbitMQs internes Objekt, das zum Speichern von Nachrichten verwendet wird)

6 Prinzip

Client (Produzent) sendet Nachricht -->Exchange (der Schalter speichert die Nachricht über verschiedene Typen in der entsprechenden Warteschlange)-->Queue

Der Client (Verbraucher) nutzt die Nachrichten in der Warteschlange über ein Abonnement.

Die oben genannten Grundkonzepte sind zusammengestellt aus Detaillierte Einführung in die Grundkonzepte von RabbitMQ

Installieren von RabbitMQ im Windows-System

1. Erlang herunterladen und installieren (ich verwende die Version otp_win64_19.3)

Adresse herunterladen (wählen Sie je nach Betriebssystem 32 oder 64 Bit)

2. Rabbitmq herunterladen und installieren Server (Ich verwende Es ist die Version Rabbitmq-Server-3.6.10)

Download-Adresse

Nach der Installation siehe

im Installationsverzeichnis

Als nächstes verwenden Sie den DOS-Befehl „enable“

a. Mein Installationsverzeichnis ist D:RabbitMQServerrabbitmq_server-3.6.10sbin >

b. Befehl zur Überprüfung, ob die Installation erfolgreich war:

rabbitmqctl status

c Management-Plug-in-Befehl:

rabbitmq-plugins aktivieren Rabbitmq_management

Die Installation ist erfolgreich, geben Sie http://127.0 ein. 0.1:15672/

Geben Sie das Gastkonto Gastpasswort Gast ein und melden Sie sich erfolgreich an. Sind Sie schon ein wenig aufgeregt?

Das Gastkonto ist ein Administratorkonto und kann Exchanges, Warteschlangen und Admin hinzufügen. Wir verwenden das Gastkonto jedoch im Allgemeinen nicht und verwenden weiterhin Befehle zum Hinzufügen von Konten und Berechtigungen.

d: Benutzer hinzufügen:

rabbitmqctl.bat add_user Benutzername Passwort

e: Rolle „Superadministrator“ hinzufügen:

Rabbitmqctl.bat set_user_tags Benutzername Administrator

mymq-Konto ist auch ein Superadministrator. Kann auf virtuelle Hosts zugreifen: Kein Zugriff, Sie Sie können sehen, dass noch keine virtuellen Maschinen vorhanden sind, auf die zugegriffen werden kann. Fügen Sie als Nächstes die virtuelle Maschine hinzu.

f: Virtuelle Maschine hinzufügen:

rabbitmqctl add_vhost vhostName

Die virtuelle Maschine myvhost tut dies Wenn Sie keine Benutzer sind, binden Sie als Nächstes ein Konto an die virtuelle Maschine.

g: Berechtigungen für virtuelle Maschine und Benutzer festlegen:

rabbitmqctl set_permissions -p Name der virtuellen Maschine Kontoname ".*" ".*" ".*"

h: Aus Gewohnheit lösche ich normalerweise das Gastkonto:

rabbitmqctl.bat delete_user Benutzername

Okay, melde dich erneut auf der Verwaltungsseite an, alles ist normal und dann beginnt der eigentliche Kampf.

Grundlegende Verwendung von EasyNetQ

EasyNetQ im Projekt installieren

EasyNetQ ist von RabbitMQ.Client abhängig und wird daher im Projekt installiert.

Nachricht veröffentlichen

Modell verfügt über eine Warteschlangenfunktion, die den Namen der Warteschlange definiert und Börsenname. Verwenden Sie dann direkt die Publish-Methode, um die Nachricht über den vom Modell angegebenen Schalter in die angegebene Warteschlange zu verschieben.

Führen Sie den Code aus und sehen Sie sich die MQ-Verwaltungsseite an.

Der durch Model angegebene Schalter TestQueue.Exchange, Type:topic, Features:D wurde erstellt. D:Durable gibt an, dass der standardmäßig erstellte Schalter langlebig ist.

Da die Nachricht noch nicht abonniert wurde, kann die entsprechende Warteschlange nicht in Warteschlangen angezeigt werden.

Nachricht abonnieren

Warum müssen Sie eine Weile (true) in den Abonnementcode einfügen? Der Zweck besteht darin, das Konsolenprogramm als Windows-Dienst zu simulieren, da das Konsolenprogramm blitzschnell ausgeführt wird und keine MQ-Nachrichten abonnieren kann.

In der tatsächlichen Entwicklung wird Topself im Allgemeinen verwendet, um das Konsolenprogramm in einem Windows-Dienst zu veröffentlichen, wenn ich Zeit habe.

Wiederholen Sie den Veröffentlichungsvorgang gerade, um den gesamten Vorgang zu testen.

Benutzerdefiniertes Thema

Auf diese Weise wird die Nachricht an die Adresse gesendet beginnend mit dem Namen Test in allen Warteschlangen.

Senden und Empfangen

können Nachrichten über Senden und Empfangen an die angegebene Warteschlange senden.

Das obige ist der detaillierte Inhalt vonGrundlegende Konzepte und Prinzipbeispiele von RabbitMQ. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn