Google Cloud Pub/Sub を使用して PHP 開発でメッセージのサブスクリプションとパブリッシュを実装する方法

王林
リリース: 2023-06-25 09:36:01
オリジナル
1826 人が閲覧しました

Google Cloud Pub/Sub は、複数のアプリケーション間でリアルタイムの非同期データを確実に転送できるフルマネージドのメッセージング サービスです。これは、ロード バランシング、イベント ドリブン コンピューティング、ロギング、通知、分析などの多くのユース ケースに対応する、広く使用されているソリューションです。

PHP 開発では、Google Cloud Pub/Sub を使用してメッセージのサブスクリプションと公開を実装することも可能です。この記事では、PHP アプリケーションからのメッセージングに Google Cloud Pub/Sub を使用する方法について説明します。

  1. Google Cloud Pub/Sub サービスの作成

Google Cloud Pub/Sub を使用する前に、Google Cloud Console で Google Cloud Pub/Sub API を有効にし、 Google Cloud Pub/Sub サービス アカウントを作成します。

Google Cloud Pub/Sub API を有効にする:

  1. Google Cloud コンソールを開きます
  2. メニューで [API とサービス] を選択します -> [ダッシュボード]
  3. 検索ボックスに「Google Cloud Pub/Sub API」と入力し、対応するサービスを選択します
  4. 有効化ボタンをクリックします

Google Cloud Pub/Sub サービス アカウントを作成します:

  1. Google Cloud コンソールを開きます
  2. 左側のメニューで [IAM と管理] > [サービス アカウント] を選択します
  3. [サービス アカウントの作成] ボタンをクリックします
  4. Enterポップアップ ウィンドウのサービス アカウント名と説明
  5. ロール ドロップダウン リストから [Pub/Sub] ->[Pub/Sub Receiver] または Pub/Sub Publisher を選択します。
  6. [保存] をクリックします。 button
  7. 生成されたサービス アカウントの詳細ページで、[キーの作成] ボタンをクリックし、JSON 形式を選択します
  8. Google Cloud Pub/Sub SDK for PHP をインストールします
#Google Cloud Pub/Sub SDK for PHP は、Google Cloud Pub/Sub の公式 PHP ライブラリであり、PHP アプリケーションにメッセージングを実装するために使用できます。

Composer を使用して Google Cloud Pub/Sub SDK for PHP をインストールするのは簡単です:

composer require google/cloud-pubsub
ログイン後にコピー

    メッセージの公開
Google を使用するのは非常に簡単ですCloud Pub/Sub でメッセージを公開するのは簡単です。次のコードは、「example-topic」という名前のトピックにメッセージをパブリッシュできます。

require_once 'vendor/autoload.php';

use GoogleCloudPubSubPubSubClient;

$pubsub = new PubSubClient();

$topic = $pubsub->topic('example-topic');

$topic->publish(['data' => 'Hello, World!']);
ログイン後にコピー

上記のコードでは、最初に「vendor/autoload.php」ファイル内のオートローダーが使用されます。次に、「GoogleCloudPubSubPubSubClient」クラスを使用して、PubSub クライアント オブジェクトをインスタンス化します。

次に、前の手順で作成したサービス アカウントの資格情報を使用して、Pub/Sub クライアント オブジェクトを承認します。クライアント オブジェクトが承認されると、それを使用してトピックやサブスクリプションを操作できるようになります。

次に、$pubsub->topic() メソッドを使用して、「example-topic」という名前のトピックへのポインターを取得する必要があります。次に、$topic->publish() メソッドを使用してメッセージをトピックにパブリッシュします。

publish() メソッドは配列パラメーターを受け取り、「data」キーを使用して公開するメッセージのコンテンツを指定します。

    メッセージのサブスクライブ
メッセージをサブスクライブするには、トピックに接続し、トピックによって公開されたすべてのメッセージを受信するサブスクリプションを作成する必要があります。

次のコードは、「example-subscription」という名前のサブスクリプションを作成し、「example-topic」という名前のトピックをサブスクライブします。

require_once 'vendor/autoload.php';

use GoogleCloudPubSubPubSubClient;

$pubsub = new PubSubClient();

$topic = $pubsub->topic('example-topic');

$subscription = $topic->subscription('example-subscription');

if (!$subscription->exists()) {
    $subscription->create();
}

$messages = $subscription->pull();

foreach ($messages as $message) {
    echo $message->data() . PHP_EOL;
    $subscription->acknowledge($message);
}
ログイン後にコピー

上記のコードでは、最初に「vendor/autoload .php」を使用します。 " ファイル。

次に、「GoogleCloudPubSubPubSubClient」クラスを使用して、PubSub クライアント オブジェクトをインスタンス化します。

次に、$pubsub->topic() メソッドを使用して、「example-topic」という名前のトピックへのポインターを取得します。次に、$topic->subscription() メソッドを使用して、「example-subscription」という名前のサブスクリプションへのポインターを取得します。

サブスクリプションが存在しない場合は、$subscription->create() メソッドを使用してサブスクリプションを作成します。

$subscription->pull() メソッドを使用して、サブスクリプションからメッセージをプルします。 $subscription->pull() メソッドは、返されたメッセージ オブジェクトを含む配列を返します。

メッセージを受信した場合は、メッセージ配列をループし、メッセージの内容を出力し、$subscription->acknowledge() メソッドを使用してメッセージが消費されたことを確認します。

注: pull() メソッドは、メッセージが受信されるかタイムアウトに達するまでブロックされます。新しいメッセージを待ちたい場合は、acknowledge() メソッドを使用して、受信したメッセージを確認応答します。

    結論
PHP 開発では、Google Cloud Pub/Sub を使用してメッセージのサブスクリプションと公開を実装するのが非常に簡単です。 Google Cloud Pub/Sub SDK for PHP ライブラリを使用し、上記の手順に従って Google Cloud Pub/Sub をアプリケーションに統合するだけです。

さらに、Google Cloud Pub/Sub では、サブスクリプション フィルターを使用したメッセージのフィルタリング、メッセージング タスクの有効期限と保持時間の設定など、実情に応じて使用できる高度な機能が多数提供されています。 。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!