Rabbitmq ist ein Hochleistungs- und zuverlässiger Queuing-System für Nachrichten. In Kombination mit PHP, einer beliebten serverseitigen Skriptsprache, können Sie die Funktionen des Nachrichtenverlags und des Abonnements problemlos implementieren. In diesem Artikel werden Sie Schritt für Schritt mit klarem Beispielcode mit klarem Beispielcode abgeschlossen, damit Sie schnell einen Messaging -Mechanismus erstellen können.
Zunächst müssen Sie Rabbitmq auf dem Server installieren. Sie können auf die offizielle Website von Rabbitmq gehen, um das für das System geeignete Installationspaket herunterzuladen und die Installation und die grundlegende Konfiguration gemäß den offiziellen Dokumenten abzuschließen.
Der Betrieb von Rabbitmq in PHP erfordert die Verwendung der AMQP -Erweiterung. Die Erweiterung kann installiert werden durch:
<span class="fun">sudo apt-get installieren Sie PHP-AMQP</span>
Wenn Sie eine Verbindung zum RabbitMQ -Server herstellen, müssen Sie die entsprechenden Verbindungsparameter konfigurieren. Das folgende Beispiel verwendet die Standardkonfiguration der lokalen Verbindung:
$connection = new AMQPConnection([
'host' => 'localhost',
'port' => '5672',
'vhost' => '/',
'login' => 'guest',
'password' => 'guest'
]);
In RabbitMQ werden Nachrichten per Exchange an die angegebene Warteschlange weitergeleitet. Exchange ist für die Nachrichtenverteilung verantwortlich und die Warteschlange ist für den Speicher und Verbrauch von Nachrichten verantwortlich.
Das folgende Beispiel deklariert einen Austausch mit dem Namen test_exchange und einen test_queue :
$channel = $connection->channel();
<p>$channel->exchange_declare('test_exchange', 'fanout', false, false, false);</p>
<p>list($queue_name, ,) = $channel->queue_declare('test_queue', false, false, true, false);</p>
<p>$channel->queue_bind($queue_name, 'test_exchange');
Veröffentlichen Sie nun Nachrichten und abonnieren und konsumieren Sie sie über eine bestimmte Warteschlange. Beispiele sind wie folgt:
$message = 'Hello, RabbitMQ!';
<p>$channel->basic_publish(<br>
new AMQPMessage($message),<br>
'test_exchange',<br>
''<br>
);</p>
<p>echo " [x] Sent '$message'\n";</p>
<p>$channel->basic_consume(<br>
$queue_name,<br>
'',<br>
false,<br>
true,<br>
false,<br>
false,<br>
function($msg) {<br>
echo ' [x] Received ', $msg->body, "\n";<br>
}<br>
);</p>
<p>while (count($channel->callbacks)) {<br>
$channel->wait();<br>
}
Speichern Sie den obigen Code als PHP -Datei wie Beispiel.Php und führen Sie ihn über das Terminal aus:
<span class="fun">PHP Beispiel.Php</span>
Sie können die Ausgabe von Message Publishing und Abonnement sehen, was darauf hinweist, dass der Nachrichtenzustellungsmechanismus erfolgreich ausgeführt wurde.
In diesem Artikel wird vorgestellt, wie PHP und RabbitMQ zur Implementierung von Nachrichtenveröffentlichungen und Abonnements kombiniert werden und detaillierte Schritte von der Umgebungskonstruktion bis zur Code -Implementierung abdeckt. Mit Hilfe des Hochleistungsmeldungs-Warteschlangensystems von Rabbitmq können PHP-Anwendungen flexible und zuverlässige Messaging erreichen und eine solide Grundlage für komplexe verteilte Systeme bieten.