ホームページ >バックエンド開発 >PHPチュートリアル >PHP と RabbitMQ を使用してメッセージのパブリッシュとサブスクリプションのパターンを実装する方法

PHP と RabbitMQ を使用してメッセージのパブリッシュとサブスクリプションのパターンを実装する方法

王林
王林オリジナル
2023-07-17 22:18:131509ブラウズ

PHP と RabbitMQ を使用してメッセージ パブリッシュおよびサブスクリプション モデルを実装する方法

RabbitMQ は高性能で信頼性の高いメッセージ キュー システムであり、PHP は一般的なサーバー サイド スクリプト言語です。メッセージ発行およびサブスクリプション モデルを適切に実装できます。この記事では、PHP と RabbitMQ を使用してメッセージのパブリッシュおよびサブスクライブ機能を実装する方法を紹介し、コード例を添付します。

  1. RabbitMQ のインストール

まず、サーバーに RabbitMQ をインストールする必要があります。 RabbitMQ の公式 Web サイト (https://www.rabbitmq.com/) からサーバーに適したインストール パッケージをダウンロードし、公式ドキュメントに従ってインストールおよび設定できます。

  1. PHP 用 AMQP 拡張機能のインストール

PHP で RabbitMQ を操作するには、AMQP 拡張機能を使用する必要があります。 AMQP 拡張機能は、次のコマンドでインストールできます。

sudo apt-get install php-amqp
  1. RabbitMQ 接続情報の構成

RabbitMQ サーバーに接続するには、接続情報を構成する必要があります。 。この例では、ローカルの RabbitMQ サーバーに接続するためのデフォルトのローカル接続情報を使用します。

$connection = new AMQPConnection([
    'host' => 'localhost',
    'port' => '5672',
    'vhost' => '/',
    'login' => 'guest',
    'password' => 'guest'
]);
  1. exchange と queue の宣言

RabbitMQ では、メッセージのパブリッシュとサブスクリプションは、exchange と queue を通じて実装されます。交換機はメッセージを受信して​​対応するキューにルーティングする責任を負い、キューはメッセージを保存してコンシューマーに提供する責任を負います。

この例では、「test_exchange」という名前の交換と「test_queue」という名前のキューを宣言します。

$channel = $connection->channel();

$channel->exchange_declare('test_exchange', 'fanout', false, false, false);

list($queue_name, ,) = $channel->queue_declare('test_queue', false, false, true, false);

$channel->queue_bind($queue_name, 'test_exchange');
  1. メッセージのパブリッシュとサブスクライブ

これで、メッセージのパブリッシュとサブスクライブを開始できます。この例では、単純なメッセージを「test_exchange」に送信し、指定された「test_queue」を介してそれをサブスクライブします。

$message = 'Hello, RabbitMQ!';

$channel->basic_publish(
    new AMQPMessage($message),
    'test_exchange',
    ''
);

echo " [x] Sent '$message'
";

$channel->basic_consume(
    $queue_name,
    '',
    false,
    true,
    false,
    false,
    function ($msg) {
        echo ' [x] Received ', $msg->body, "
";
    }
);

while (count($channel->callbacks)) {
    $channel->wait();
}
  1. サンプル コードの実行

上記のコードを PHP ファイルに保存し、ターミナルからファイルを実行します。

php example.php

メッセージのパブリッシュとサブスクリプションに関する情報がターミナルに出力されていることがわかります。

上記の手順により、PHP と RabbitMQ を使用してメッセージ パブリッシュ モードとサブスクリプション モードを正常に実装できました。

概要:

この記事では、PHP と RabbitMQ を使用してメッセージ パブリッシュおよびサブスクリプション機能を実装する方法を紹介し、詳細なコード例を示します。 RabbitMQ を使用すると、高性能で信頼性の高いメッセージ キュー システムを実装でき、アプリケーションにより柔軟でスケーラブルなメッセージング メカニズムを提供できます。

以上がPHP と RabbitMQ を使用してメッセージのパブリッシュとサブスクリプションのパターンを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。