Heim >Backend-Entwicklung >Golang >Verwendung von Google Cloud Pub/Sub in Go: Eine vollständige Anleitung

Verwendung von Google Cloud Pub/Sub in Go: Eine vollständige Anleitung

王林
王林Original
2023-06-17 12:10:401518Durchsuche

Mit dem Aufstieg des Cloud Computing beginnen immer mehr Unternehmen und Entwickler, Cloud-Dienste zum Erstellen von Anwendungen zu nutzen. In diesen Cloud-Diensten wird Message Queue (Message Queue) häufig verwendet, um die Übertragung und Verarbeitung großer Datenmengen zu unterstützen. Google Cloud Pub/Sub ist ein effizienter, zuverlässiger und benutzerfreundlicher Messaging-Dienst für eine Vielzahl von Anwendungen, die auf der Google Cloud Platform entwickelt wurden. In diesem Artikel erfahren Sie, wie Sie Google Cloud Pub/Sub in der Go-Sprache verwenden.

Überblick über Google Cloud Pub/Sub

Google Cloud Pub/Sub ist ein vollständig verwalteter Messaging-Dienst, der Ihnen die Infrastruktur bietet, die Sie zum Erstellen zuverlässiger Echtzeitanwendungen in Google Cloud benötigen. Es handelt sich um ein Publish/Subscribe-Modell, mit dem Sie Nachrichten zwischen Veröffentlichungen und Abonnements weitergeben können. Google Cloud übernimmt im Hintergrund die gesamte Nachrichtenübertragung und -verwaltung für Sie. Sie müssen lediglich die API aufrufen, um Nachrichten zu senden und zu empfangen.

Verwenden von Google Cloud Pub/Sub in der Go-Sprache

Für die Verwendung von Google Cloud Pub/Sub in der Go-Sprache müssen die folgenden drei Schritte ausgeführt werden:

  1. Erstellen Sie ein Google Cloud Pub/Sub-Projekt und legen Sie die Autorisierung fest.
  2. Verwenden Sie Google Cloud Pub/ Sub-API Thema erstellen und abonnieren
  3. Nachrichten über die Google Cloud Pub/Sub-Bibliothek in der Go-Sprache senden und empfangen

Schritt 1: Google Cloud Pub/Sub-Projekt erstellen und Autorisierung festlegen

Ein Projekt in der Google Cloud Console erstellen, auswählen Bezahlen Sie über ein kostenpflichtiges Konto und aktivieren Sie die Cloud Pub/Sub API. Erstellen Sie als Nächstes ein Dienstkonto und legen Sie dessen Rollen auf „Pub/Sub-Administrator“ und „Pub/Sub-Herausgeber“ fest. Sie müssen außerdem einen Schlüssel für das Dienstkonto zur Authentifizierung erstellen, wenn Sie Google Cloud Pub/Sub in Go verwenden.

Schritt 2: Verwenden Sie die Google Cloud Pub/Sub-API, um ein Thema und ein Abonnement zu erstellen.

Verwenden Sie die Konsole oder API von Google Cloud Pub/Sub, um ein Thema und ein Abonnement zu erstellen. Ein Thema stellt einen Absender oder Herausgeber dar, an den Nachrichten gesendet werden können. Ein Abonnement stellt einen Empfänger oder Abonnenten dar, der Nachrichten von einem Thema empfangen kann. Themen und Abonnements werden beide durch eindeutige Namen identifiziert und können überall im selben Google Cloud-Projekt verwendet werden. Mit den Client-Bibliotheken von Google Cloud können Sie ganz einfach Themen und Abonnements erstellen und verwalten. In Go können Sie die Google Cloud Pub/Sub-Bibliothek verwenden, um Themen und Abonnements zu erstellen.

Schritt 3: Verwenden Sie die Google Cloud Pub/Sub-Bibliothek in der Go-Sprache zum Senden und Empfangen von Nachrichten.

Verwenden Sie in Ihrem Go-Projekt die Google Cloud Pub/Sub-Bibliothek zum Senden und Empfangen von Nachrichten. Erstellen Sie vor dem Senden einer Nachricht eine PublishRequest und legen Sie den Abonnementnamen und die Nachricht fest. Die Publish-Methode sendet eine Nachricht an ein abonniertes Thema. Erstellen Sie vor dem Empfang von Nachrichten ein Abonnement und warten Sie mit der Methode „Receive“ auf Nachrichten aus dem Thema. Abschließend wird die Decode-Methode aufgerufen, um die empfangene Nachricht zu dekodieren. Hier ist ein Go-Beispielcode zum Senden und Empfangen von Nachrichten:

package main

import (
    "context"
    "fmt"

    "cloud.google.com/go/pubsub"
)

func main() {
    // Set Google Cloud credentials and project ID
    ctx := context.Background()
    projectID := "your-project-id"
    client, err := pubsub.NewClient(ctx, projectID)
    if err != nil {
        fmt.Println(err)
    }
    
    // Create topic and subscription
    topicName := "test-topic"
    subscriptionName := "test-subscription"
    topic, err := client.CreateTopic(ctx, topicName)
    if err != nil {
        fmt.Println(err)
    }
    _, err = client.CreateSubscription(ctx, subscriptionName, pubsub.SubscriptionConfig{
        Topic: topic,
    })
    if err != nil {
        fmt.Println(err)
    }

    // Send message to topic
    message := "test message"
    result := topic.Publish(ctx, &pubsub.Message{
        Data: []byte(message),
    })
    _, err = result.Get(ctx)
    if err != nil {
        fmt.Println(err)
    }

    // Receive message from subscription
    sub := client.Subscription(subscriptionName)
    err = sub.Receive(ctx, func(ctx context.Context, msg *pubsub.Message) {
        fmt.Printf("Received message: %s
", string(msg.Data))
        msg.Ack()
    })
    if err != nil {
        fmt.Println(err)
    }
}

Fazit

Google Cloud Pub/Sub ist ein effizienter, zuverlässiger und benutzerfreundlicher Messaging-Dienst für eine Vielzahl von Anwendungen, die auf der Google Cloud Platform basieren. Für die Verwendung von Google Cloud Pub/Sub in der Go-Sprache müssen drei Schritte ausgeführt werden: Erstellen eines Google Cloud Pub/Sub-Projekts und Einrichten der Autorisierung, Verwenden der Google Cloud Pub/Sub-API zum Erstellen von Themen und Abonnements und Verwenden von Google Cloud Pub/Sub in Die Go-Sprachbibliothek sendet und empfängt Nachrichten. Die Verwendung von Google Cloud Pub/Sub kann die Nachrichtenübermittlung erheblich vereinfachen und Ihre Anwendungen zuverlässiger und effizienter machen.

Das obige ist der detaillierte Inhalt vonVerwendung von Google Cloud Pub/Sub in Go: Eine vollständige Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn