Überblick
In der modernen Anwendungsentwicklung ist Messaging zu einem wichtigen Kommunikationsmechanismus geworden. Rabbitmq kann als beliebte Messing Middleware uns helfen, effiziente und zuverlässige Messaging zu erreichen. Dieser Artikel führt Sie durch die Implementierung dieses Messaging -Mechanismus mithilfe von PHP und Rabbitmq und bietet gleichzeitig Codebeispiele, damit Sie schnell beginnen können.
Installieren Sie Rabbitmq
Zunächst müssen wir Rabbitmq installieren. Sie können das entsprechende Installationspaket gemäß Ihrem Betriebssystem auswählen und gemäß den Schritten der offiziellen Dokumentation installieren. Stellen Sie nach Abschluss der Installation sicher, dass der Rabbitmq -Dienst erfolgreich gestartet wurde.
Installieren Sie die PHP AMQP -Erweiterung
Damit PHP mit Rabbitmq kommuniziert, müssen wir die AMQP -Erweiterung installieren. Sie können den folgenden Befehl zur Installation verwenden:
# Verwenden Sie den Befehl PECL, um $ Pecl Installation AMQP zu installieren
# Verwenden Sie den Komponisten, um $ Composer zu installieren
Verbindung zu Rabbitmq herstellen
Wenn Sie Rabbitmq in PHP verbinden, müssen Sie die erforderlichen Verbindungsparameter angeben, einschließlich Host, Port, Benutzername und Passwort usw. Hier finden Sie den Beispielcode zum Erstellen der Verbindung:
Required_once __dir__. '/vendor/autoload.php';
$ connection = new PHPAMQPLIB \ Connection \ amqpstreamConnection (
'Localhost', 5672, 'Gast', 'Gast'
);
$ Channel = $ Connection-> Channel ();
Erstellen Sie eine Nachrichtenwarteschlange
Bei der Verwendung von RabbitMQ müssen Sie zunächst eine Warteschlange zum Speichern von Nachrichten erstellen. Der folgende Code zeigt, wie Sie eine Warteschlange in PHP erstellen:
$ queueName = 'my_queue'; // Warteschlangenname $ Channel-> queue_declare ($ queueName, falsch, wahr, falsch, falsch);
Senden Sie eine Nachricht
Wir können Nachrichten mit dem folgenden Code an die erstellte Warteschlange senden:
$ msg = new PHPAMQPLIB \ message \ amqpMessage ('Hallo Rabbitmq!');
$ Channel-> Basic_publish ($ msg, '', $ queueName);
Empfangen Sie die Nachricht und bestätigen Sie
Das Empfangen von Nachrichten erfolgt über den Verbraucher. Hier ist der Beispielcode für den Verbraucher:
$ callback = function ($ msg) {
echo 'empfangene Nachricht:'. $ msg-> Körper. "\N";
$ msg-> lieferung_info ['Kanal']-> Basic_ack ($ msg-> lieferung_info ['lieferung_tag']);
};
$ Channel-> Basic_consume ($ queueName, '', falsch, wahr, falsch, falsch, $ callback);
while (count ($ kanal-> callbacks)) {
$ kanal-> wait ();
}
In diesem Code erstellen wir eine Rückruffunktion, um Nachrichten zu empfangen und zu verarbeiten. Nach der Verarbeitung der Nachricht wird die Basic_ack -Methode verwendet, um zu bestätigen, dass die Nachricht erfolgreich verarbeitet wurde, so dass die Nachricht nicht verloren geht, selbst wenn der Verbraucher fehlschlägt.
Schließen Sie die Verbindung
Vergessen Sie nach Abschluss der Messaging nicht, die Verbindung zu Rabbitmq zu schließen:
$ kanal-> close ();
$ connection-> close ();
Zusammenfassen
Durch die Kombination von PHP mit RabbitMQ können wir leicht zuverlässige Messaging -Mechanismen implementieren. In diesem Artikel wird beschrieben, wie die Erweiterungen von Rabbitmq und AMQP installiert werden. In Detail, wie PHP für die Erstellung von Warteschlangen, das Senden und Empfangen von Nachrichten verwendet wird. Ich hoffe, dieser Artikel ist hilfreich, um Rabbitmq zu verstehen und zu verwenden, um die Zuverlässigkeit Ihrer Bewerbung zu verbessern.