Google Cloud Pub/Sub ist ein vollständig verwalteter Messaging-Dienst, der Ihnen die zuverlässige Übertragung von Echtzeit- und asynchronen Daten zwischen mehreren Anwendungen ermöglicht. Es handelt sich um eine weit verbreitete Lösung, die viele Anwendungsfälle wie Lastausgleich, ereignisgesteuertes Computing, Protokollierung, Benachrichtigungen und Analysen usw. abdeckt.
In der PHP-Entwicklung ist es auch möglich, Google Cloud Pub/Sub zu verwenden, um das Abonnieren und Veröffentlichen von Nachrichten zu implementieren. In diesem Artikel wird erläutert, wie Sie Google Cloud Pub/Sub für Nachrichten aus einer PHP-Anwendung verwenden.
- Google Cloud Pub/Sub-Dienst erstellen
Bevor Sie Google Cloud Pub/Sub verwenden, müssen Sie die Google Cloud Pub/Sub-API in der Google Cloud Console aktivieren und ein Google Cloud Pub/Sub-Dienstkonto erstellen.
Aktivieren Sie die Google Cloud Pub/Sub API:
- Öffnen Sie die Google Cloud Console.
- Wählen Sie APIs und Dienste im Menü ->Dashboard.
- Geben Sie „Google Cloud Pub/Sub API“ in das Suchfeld ein und wählen Sie den entsprechenden Dienst aus
Klicken Sie auf die Schaltfläche „Aktivieren“-
Erstellen Sie ein Google Cloud Pub/Sub-Dienstkonto:
Öffnen Sie die Google Cloud Console- Wählen Sie im linken Menü „IAM und Management“->Dienstkonto aus.
- Klicken Sie auf die Schaltfläche „Dienstkonto erstellen“
- Geben Sie den Namen und die Beschreibung des Dienstkontos in das Popup-Fenster ein.
- Wählen Sie Pub/Sub aus der Dropdown-Liste „Rolle“ aus –>Pub/Sub-Empfänger oder Pub/Sub-Herausgeber.
- Klicken Sie auf die Schaltfläche „Speichern“.
- Im generierten In Klicken Sie auf der Detailseite des Dienstkontos auf die Schaltfläche „Schlüssel erstellen“ und wählen Sie das JSON-Format aus.
- Installieren Sie Google Cloud Pub/Sub SDK für PHP.
-
Google Cloud Pub/Sub SDK für PHP ist die offizielle Version von Google Cloud Pub/Sub PHP-Bibliothek, die zur Implementierung von Nachrichten in PHP-Anwendungen verwendet werden kann.
Einfache Installation des Google Cloud Pub/Sub SDK für PHP mit Composer:
composer require google/cloud-pubsub
Nach dem Login kopieren
Nachrichten veröffentlichen
Das Veröffentlichen von Nachrichten mit Google Cloud Pub/Sub ist sehr einfach. Der folgende Code kann eine Nachricht zu einem Thema namens „example-topic“ veröffentlichen:
require_once 'vendor/autoload.php';
use GoogleCloudPubSubPubSubClient;
$pubsub = new PubSubClient();
$topic = $pubsub->topic('example-topic');
$topic->publish(['data' => 'Hello, World!']);
Nach dem Login kopieren
Im obigen Code wird zuerst der Autoloader in der Datei „vendor/autoload.php“ verwendet. Instanziieren Sie dann ein PubSub-Clientobjekt mithilfe der Klasse „GoogleCloudPubSubPubSubClient“.
Autorisieren Sie dann das Pub/Sub-Clientobjekt mit den im vorherigen Schritt erstellten Anmeldeinformationen für das Dienstkonto. Sobald das Clientobjekt autorisiert ist, können Sie es zum Bearbeiten Ihrer Themen und Abonnements verwenden.
Als nächstes müssen Sie die Methode $pubsub->topic() verwenden, um einen Zeiger auf das Thema mit dem Namen „example-topic“ zu erhalten. Verwenden Sie dann die Methode $topic->publish(), um Nachrichten im Thema zu veröffentlichen. Die Methode
publish() akzeptiert einen Array-Parameter, wobei der Schlüssel „data“ verwendet wird, um den zu veröffentlichenden Nachrichteninhalt anzugeben.
Nachrichten abonnieren
Um Nachrichten zu abonnieren, müssen Sie ein Abonnement erstellen, das eine Verbindung zu einem Thema herstellt und alle von dem Thema veröffentlichten Nachrichten empfängt.
Der folgende Code erstellt ein Abonnement mit dem Namen „example-subscription“ und abonniert ein Thema mit dem Namen „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);
}
Nach dem Login kopieren
Im obigen Code verwenden Sie zunächst das automatische Laden im Dateigerät „vendor/autoload.php“.
Dann instanziieren Sie ein PubSub-Clientobjekt mithilfe der Klasse „GoogleCloudPubSubPubSubClient“.
Dann verwenden Sie die Methode $pubsub->topic(), um einen Zeiger auf das Thema mit dem Namen „example-topic“ zu erhalten. Verwenden Sie dann die Methode $topic->subscription(), um einen Zeiger auf das Abonnement mit dem Namen „example-subscription“ abzurufen.
Wenn das Abonnement nicht existiert, verwenden Sie die Methode $subscription->create(), um das Abonnement zu erstellen.
Verwenden Sie die Methode $subscription->pull(), um Nachrichten aus dem Abonnement abzurufen. Die Methode $subscription->pull() gibt ein Array zurück, das die zurückgegebenen Nachrichtenobjekte enthält.
Wenn eine Nachricht empfangen wird, durchlaufen Sie das Nachrichtenarray, geben den Nachrichteninhalt aus und verwenden die Methode $subscription->acknowledge(), um zu bestätigen, dass die Nachricht verbraucht wurde.
Hinweis: Die Methode pull() blockiert, bis eine Nachricht empfangen wird oder das Timeout erreicht ist. Wenn Sie auf neue Nachrichten warten möchten, können Sie empfangene Nachrichten mit der Methode Acknowledge() bestätigen.
Fazit-
In der PHP-Entwicklung ist es sehr einfach, Google Cloud Pub/Sub zum Implementieren des Abonnierens und Veröffentlichens von Nachrichten zu verwenden. Verwenden Sie einfach das Google Cloud Pub/Sub SDK für PHP-Bibliothek und befolgen Sie die oben genannten Schritte, um Google Cloud Pub/Sub in Ihre Anwendung zu integrieren.
Darüber hinaus bietet Google Cloud Pub/Sub viele erweiterte Funktionen, wie z. B. die Verwendung von Abonnementfiltern zum Filtern von Nachrichten, das Festlegen der Ablaufzeit und Aufbewahrungszeit von Messaging-Aufgaben usw., die entsprechend den tatsächlichen Bedingungen verwendet werden können.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Google Cloud Pub/Sub, um das Abonnieren und Veröffentlichen von Nachrichten in der PHP-Entwicklung zu implementieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!