ホームページ >バックエンド開発 >PHP7 >PHP7.0でメッセージキューを開発するにはどうすればよいですか?

PHP7.0でメッセージキューを開発するにはどうすればよいですか?

王林
王林オリジナル
2023-05-28 08:40:521054ブラウズ

インターネット技術の継続的な進歩と発展に伴い、技術の効率と安定性を確保するために、さまざまな技術的手段が常に提案され、適用されています。中でも、Message Queue (以下、MQ) 技術は現在最も普及しており、広く使用されている技術手段です。 MQ は、システム内の異なるモジュール間の非同期通信の問題を解決し、アプリケーション間の疎結合と優れたスケーラビリティを可能にすることを目的としています。この記事では、PHP7.0でメッセージキューを開発する方法を紹介します。

1. MQ の基本

1. メッセージ キューの概念

MQ は、メッセージ パッシングまたは非同期処理テクノロジです。メッセージ キューを使用すると、送信者と受信者間の疎結合通信が可能になり、アプリケーション間の相互接続性と保守性が向上します。 MQ はサードパーティのミドルウェアを使用して、プロデューサーを通じてメッセージをキューに送信し、コンシューマーはキューからメッセージを抽出して消費します。 MQ は、分散システム、同時実行性の高いシステム、データ バックログのシナリオで使用できます。

2. メッセージ キュー タイプ

MQ には複数のタイプが含まれます:

P2P: ポイントツーポイント通信、プロデューサーはメッセージをキューに送信し、それを受信します。消費者が消費することで、メッセージ配信の信頼性を確保できます。

Pub/Sub: パブリッシュ/サブスクライブ モード。プロデューサはトピックにメッセージをパブリッシュし、サブスクライバはトピックからのメッセージをサブスクライブして消費することで、メッセージ配信の弾力性とスケーラビリティを実現できます。

3. MQ コンポーネント

MQ は主に次のコンポーネントで構成されます:

Message: メッセージの基本単位

Producer: メッセージのジェネレーターメッセージ

Consumer: メッセージコンシューマー

Queue: メッセージストレージエリア

Exchange: メッセージルーティング

Binding: メッセージバインディング関係

2 、PHP7.0

1 で MQ を開発する方法1. RabbitMQ のインストール

RabbitMQ は、P2P および Pub/Sub モードをサポートし、複数のプログラミング言語の開発をサポートする人気のある MQ 実装です。 、使いやすさが高い。 PHP7.0 で RabbitMQ を使用するには、PHP-AMQP 拡張機能をインストールする必要があります。手順は次のとおりです。

(1) RabbitMQ をダウンロードして解凍します。公式 Web サイトのアドレスは次のとおりです。 http://www.rabbitmq.com/

(2) Erlang をインストールします。 RabbitMQ は Erlang 言語に基づいて開発されています。最初に Erlang 環境をインストールしてください

(3) RabbitMQ サーバーを起動します:

$ sudo Rabbitmq-server

(4) PHP-AMQP 拡張機能:

$ pecl install amqp

インストールが完了したら、php.ini ファイルに次の構成項目を追加します: extension=amqp.so

(5) Web サーバーを再起動して、PHP-AMQP 拡張機能の設定が有効になることを確認します

2. コードを記述します

#PHP 側で RabbitMQ を使用するには、amqp 拡張機能をインストールする必要があります。コンポーザーを選択し、amqp パッケージをインストールします。

(1) amqp パッケージをインストールします

$composer require php-amqplib/php-amqplib

(2) プロデューサー コード

以下は使用方法ですメッセージをキューに送信するための PHP プロデューサー コード:

まず、次のようにクライアントをインスタンス化する必要があります。 setHost('localhost');

$connection->setPort('5672');

$connection->setLogin('guest');

$connection->setPassword('guest' );
$connection->connect();

メッセージ送信の実装:

$exchange = 'test-exchange';

$queue = 'test-queue ';

$message = 'Hello World';

try {

$channel = new AMQPChannel($connection);
$exchange = new AMQPExchange($channel);
$exchange->setName($exchange);
$exchange->setType(AMQP_EX_TYPE_DIRECT);
$exchange->declareExchange();
$queue = new AMQPQueue($channel);
$queue->setName($queue);
$queue->setFlags(AMQP_DURABLE);
$queue->declareQueue();
$queue->bind($exchange->getName(), $queue->getName());
$exchange->publish($message, $queue->getName());

}
catch (AMQPException $e) {
var_dump($e);

}

$connection- >disconnect();

上記のコードでは、キュー test-queue とエクスチェンジャー test-exchange が作成され、キューとエクスチェンジがバインドされて、メッセージが送信されます。

##(3) コンシューマ コード

以下は、キューからメッセージを消費するためのコンシューマ コードです。

まず、次のようにクライアントをインスタンス化します。

$connection = new AMQPConnection();

$connection->setHost('localhost');

$connection->setPort('5672');

$connection-> ;setLogin('guest ');

$connection->setPassword('guest');

$connection->connect();

メッセージ消費の実装:

$exchange = 'test-exchange';
$queue = 'test-queue';

try {

$channel = new AMQPChannel($connection);
$exchange = new AMQPExchange($channel);
$exchange->setName($exchange);
$exchange->setType(AMQP_EX_TYPE_DIRECT);
$exchange->declareExchange();
$queue = new AMQPQueue($channel);
$queue->setName($queue);
$queue->setFlags(AMQP_DURABLE);
$queue->declareQueue();
$queue->bind($exchange->getName(), $queue->getName());
$queue->consume(function(AMQPEnvelope $message, AMQPQueue $queue) {
    echo $message->getBody();
    $queue->ack($message->getDeliveryTag());
});

}

catch (AMQPException $e) {

var_dump($e);

}

$connection->disconnect();


上記のコードでは、キュー test-queue とエクスチェンジャー test-exchange が作成され、キューとエクスチェンジャーがバインドされ、コンシューマーは次の結果を取得します。キューからメッセージを取得してコンソールに出力し、メッセージが $queue->ack() メソッドを通じて消費されたことを確認します。

3. 概要

この記事では、PHP7.0 で MQ を開発する方法を紹介します。まず、RabbitMQ および PHP-AMQP 拡張機能をインストールする必要があります。次に、composer をインストールし、amqp パッケージをインストールする必要があります。最後に、メッセージの送信と消費を実装するコードを作成します。 MQ テクノロジの出現により、インターネット アプリケーションにとって、より便利で効率的なメッセージ配信方法が提供され、特に同時実行性の高いシナリオや分散システムでは、MQ は不可欠な要素となっています。この記事を読むことで、読者が PHP7.0 での MQ 開発の具体的な手順と実装方法を理解し、独自のビジネス アプリケーションで MQ テクノロジを試すための参考にしていただければ幸いです。

以上がPHP7.0でメッセージキューを開発するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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