ホームページ  >  記事  >  バックエンド開発  >  PHP8.0のメッセージバスライブラリ

PHP8.0のメッセージバスライブラリ

王林
王林オリジナル
2023-05-14 08:01:351264ブラウズ

ネットワーク アプリケーションの継続的な開発に伴い、メッセージ キューの使用範囲がますます広がっています。同時実行性が高くパフォーマンスの高いアプリケーションの場合、メッセージ キューを使用すると、プログラムの応答速度と安定性が効果的に向上します。 PHP8.0では、PHPのメッセージキューの効率が大幅に向上する新しいメッセージバスライブラリが追加されましたので、この記事ではこのライブラリの使い方について詳しく紹介します。

1. メッセージ バスとは

メッセージ バスは、プロデューサーからコンシューマーにメッセージを効果的に配信できる一般的なメッセージング モデルです。プロデューサはメッセージ バスにメッセージを送信し、コンシューマはメッセージ バスからメッセージを受信します。メッセージ バスはミドルウェアとして、メッセージの送信を容易にし、システムの結合を軽減し、さまざまなモジュール間の情報交換をより柔軟にします。

2. PHP8.0 のメッセージ バス ライブラリ

PHP8.0 では、メッセージの送受信など、メッセージ キューの複数の操作方法をサポートする「AMQP」と呼ばれるメッセージ バス ライブラリが導入されました。このライブラリがリリースされると、PHP エコシステムにおける高パフォーマンスのメッセージ キュー処理に推奨されるツールになりました。

3. AMQP 拡張ライブラリをインストールする

AMQP は PHP の標準ライブラリではないため、AMQP を使用する前に対応する拡張ライブラリをインストールする必要があります。 AMQP 拡張ライブラリは PECL を介してインストールできます。インストール コマンドは次のとおりです:

pecl install amqp

インストールが完了したら、拡張ライブラリの構成情報を php.ini ファイルに追加する必要があります:

extension=amqp

4. AMQP の利用方法

  1. メッセージ バスへの接続

まず、メッセージ バスへの接続を確立する必要があります。 AMQP では、AMQPConnection を使用してメッセージ バスに接続します。接続にはホスト名、ユーザー名、パスワードなどを指定する必要があり、タイムアウトやハートビート間隔などのさまざまな属性を設定できます。

$connection = new AMQPConnection(array(
    'host' => 'localhost',
    'port' => '5672',
    'login' => 'guest',
    'password' => 'guest'
));
  1. チャネルの作成

接続が成功したら、チャネルを作成できます。チャネルは AMQP の基本的な管理単位であり、メッセージの送受信、キューとエクスチェンジャーのバインド、その他の操作に使用できます。

$channel = new AMQPChannel($connection);
  1. キューの宣言

AMQP では、このキューにメッセージを送信する前にキューを宣言する必要があります。

$queue_name = "my_queue_demo";
$queue = new AMQPQueue($channel);
$queue->setName($queue_name);
$queue->declare(); // 声明队列
  1. メッセージの送信

キューのパブリッシュ メソッドを使用してメッセージをキューに送信します:

$message = "Hello World!";
$queue->publish($message);
  1. メッセージを受信

キューの get メソッドを使用して、キューからメッセージを取り出します。

$message = $queue->get();
if ($message) {
    echo "Received Message: " . $message->getBody() . "
";
    $queue->ack($message->getDeliveryTag());
}
  1. キューとエクスチェンジャーをバインドします

AMQP では、キューは、受信するメッセージを決定する Exchange バインディングである必要があります。バインドは、エクスチェンジャーのバインド メソッドとキューのバインド メソッドを使用して実行できます。

$exchange_name = "my_exchange_demo";
$exchange = new AMQPExchange($channel);
$exchange->setName($exchange_name);
$exchange->setType(AMQP_EX_TYPE_DIRECT);
$exchange->declare(); // 声明交换器

// 绑定队列和交换器
$queue->bind($exchange_name, $queue_name);
  1. ルーティング キーを使用してメッセージを公開する

スイッチを使用する場合、ルーティング キーを使用してメッセージを公開できます。ルーティング キーは、メッセージを特定のキューにルーティングするために使用されるキーワードで、キューをバインドして交換するときに指定されます。

$routing_key = "my_routing_key";
$exchange->publish("Hello World!", $routing_key);
  1. ルーティング キーを使用してメッセージを消費する

キューにメッセージがあるときにキューの消費メソッドを使用して消費を開始します。 Consumer メソッドでコールバック関数を指定して、受信したメッセージを処理できます。

$callback = function(AMQPEnvelope $envelope, AMQPQueue $queue) {
    echo "Received Message: " . $envelope->getBody() . "
";
    $queue->ack($envelope->getDeliveryTag());
};

$queue->consume($callback);
  1. 接続を閉じる

最後に、AMQP の使用を終了した後、メッセージバス接続との接続。

$connection->disconnect();

5. 概要

この記事では、メッセージ バスへの接続、チャネルの作成、キューの宣言、送受信など、PHP8.0 のメッセージ バス ライブラリである AMQP の基本的な使用法を紹介します。メッセージとバインディング キューとエクスチェンジャーを定義し、ルーティング キーを使用してメッセージを消費するためのルーティング キーの使用方法などを定義します。このライブラリを使用すると、メッセージ キューをより便利に使用して、同時実行性とパフォーマンスの高い Web アプリケーションを実装できます。

以上がPHP8.0のメッセージバスライブラリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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