Rumah >pembangunan bahagian belakang >tutorial php >Cara menggunakan Google Cloud Pub/Sub untuk melaksanakan langganan dan penerbitan mesej dalam pembangunan PHP

Cara menggunakan Google Cloud Pub/Sub untuk melaksanakan langganan dan penerbitan mesej dalam pembangunan PHP

王林
王林asal
2023-06-25 09:15:511931semak imbas

Google Cloud Pub/Sub ialah perkhidmatan pemesejan terurus sepenuhnya yang membolehkan anda memindahkan data masa nyata dan tak segerak antara berbilang aplikasi dengan pasti. Ia ialah penyelesaian yang digunakan secara meluas yang memenuhi banyak kes penggunaan seperti pengimbangan beban, pengkomputeran dipacu peristiwa, pengelogan, pemberitahuan dan analitik, dsb.

Dalam pembangunan PHP, ia juga boleh digunakan untuk menggunakan Google Cloud Pub/Sub untuk melaksanakan langganan dan penerbitan mesej. Artikel ini menerangkan cara menggunakan Google Cloud Pub/Sub untuk pemesejan daripada aplikasi PHP.

  1. Buat perkhidmatan Google Cloud Pub/Sub

Sebelum menggunakan Google Cloud Pub/Sub, anda perlu mendayakan API Google Cloud Pub/Sub pada Google Cloud Console dan buat akaun perkhidmatan Google Cloud Pub/Sub.

Dayakan API Google Cloud Pub/Sub:

  1. Buka Google Cloud Console
  2. Pilih API dan Perkhidmatan dalam menu ->Papan Pemuka
  3. Masukkan "Google Cloud Pub/Sub API" dalam kotak carian dan pilih Sepadan
  4. Klik butang daya
Buat akaun perkhidmatan Google Cloud Pub/Sub:

    Buka Google Cloud Console
  1. Pilih IAM and Management->Service Account dalam menu kiri
  2. Klik
  3. Button Buat Akaun Perkhidmatan Masukkan nama dan perihalan akaun perkhidmatan dalam tetingkap timbul
  4. Pilih Pub/Sub daripada senarai juntai bawah peranan ->Penerima Pub/Sub atau Penerbit Pub/Sub
  5. Klik butang Simpan
  6. Dalam dalam yang dihasilkan halaman butiran akaun perkhidmatan, klik butang "Buat Kunci" dan pilih format JSON
  7. Pasang Google Cloud Pub/Sub SDK untuk PHP
Google Cloud Pub/Sub SDK untuk PHP ialah versi rasmi Google Cloud Pub/Sub Pustaka PHP yang boleh digunakan untuk melaksanakan pemesejan dalam aplikasi PHP.

Pasang Google Cloud Pub/Sub SDK untuk PHP dengan mudah menggunakan Komposer:

composer require google/cloud-pubsub

    Publishing Messages
Menerbitkan mesej menggunakan Google Cloud Pub/Sub adalah sangat mudah. Kod berikut boleh menerbitkan mesej kepada topik bernama "example-topic":

require_once 'vendor/autoload.php';

use GoogleCloudPubSubPubSubClient;

$pubsub = new PubSubClient();

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

$topic->publish(['data' => 'Hello, World!']);

Dalam kod di atas, autoloader dalam fail "vendor/autoload.php" pertama kali digunakan. Kemudian, nyatakan objek klien PubSub menggunakan kelas "GoogleCloudPubSubPubSubSubClient".

Kemudian, benarkan objek pelanggan Pub/Sub menggunakan bukti kelayakan akaun perkhidmatan yang dibuat dalam langkah sebelumnya. Setelah objek pelanggan dibenarkan, anda boleh menggunakannya untuk mengendalikan topik dan langganan anda.

Seterusnya, anda perlu menggunakan kaedah $pubsub->topic() untuk mendapatkan penunjuk kepada topik bernama "example-topic". Kemudian, gunakan kaedah $topic->publish() untuk menerbitkan mesej kepada topik tersebut. Kaedah

publish() menerima parameter tatasusunan, di mana kunci "data" digunakan untuk menentukan kandungan mesej yang akan diterbitkan.

    Melanggan Mesej
Untuk melanggan mesej, anda perlu membuat langganan yang akan menyambung ke topik dan menerima semua mesej yang diterbitkan oleh topik tersebut.

Kod berikut mencipta langganan bernama "example-subscription" dan melanggan topik bernama "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);
}

Dalam kod di atas, mula-mula gunakan autoloading dalam peranti fail "vendor/autoload.php".

Kemudian, nyatakan objek klien PubSub menggunakan kelas "GoogleCloudPubSubPubSubSubClient".

Kemudian, gunakan kaedah $pubsub->topic() untuk mendapatkan penunjuk kepada topik yang dinamakan "example-topic". Kemudian, gunakan kaedah $topic->subscription() untuk mendapatkan penunjuk kepada langganan bernama "example-subscription".

Jika langganan tidak wujud, gunakan kaedah $subscription->create() untuk membuat langganan.

Gunakan kaedah $subscription->pull() untuk menarik mesej daripada langganan. Kaedah $subscription->pull() akan mengembalikan tatasusunan yang mengandungi objek mesej yang dikembalikan.

Jika mesej diterima, gelung melalui tatasusunan mesej, keluarkan kandungan mesej dan gunakan kaedah $subscription->acknowledge() untuk mengesahkan bahawa mesej itu telah digunakan.

Nota: Kaedah pull() menyekat sehingga mesej diterima atau tamat masa dicapai. Jika anda ingin menunggu mesej baharu, anda boleh menggunakan kaedah acknowledge() untuk mengakui mesej yang diterima.

    Kesimpulan
Dalam pembangunan PHP, sangat mudah untuk menggunakan Google Cloud Pub/Sub untuk melaksanakan langganan dan penerbitan mesej. Hanya gunakan Google Cloud Pub/Sub SDK untuk pustaka PHP dan ikuti langkah di atas untuk menyepadukan Google Cloud Pub/Sub dalam aplikasi anda.

Selain itu, Google Cloud Pub/Sub menyediakan banyak fungsi lanjutan, seperti menggunakan penapis langganan untuk menapis mesej, menetapkan masa tamat tempoh dan masa pengekalan tugas pemesejan, dsb., yang boleh digunakan mengikut keadaan sebenar.

Atas ialah kandungan terperinci Cara menggunakan Google Cloud Pub/Sub untuk melaksanakan langganan dan penerbitan mesej dalam pembangunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn