Maison > développement back-end > Golang > le corps du texte

Utiliser Google Cloud Pub/Sub dans Go : un guide complet

王林
Libérer: 2023-06-17 12:10:40
original
1466 Les gens l'ont consulté

Avec l'essor du cloud computing, de plus en plus d'entreprises et de développeurs commencent à utiliser les services cloud pour créer des applications. Dans ces services cloud, Message Queue est largement utilisé pour faciliter la transmission et le traitement de grandes quantités de données. Google Cloud Pub/Sub est un service de messagerie efficace, fiable et facile à utiliser pour une variété d'applications développées sur Google Cloud Platform. Cet article explique comment utiliser Google Cloud Pub/Sub en langage Go.

Présentation de Google Cloud Pub/Sub

Google Cloud Pub/Sub est un service de messagerie entièrement géré conçu pour vous fournir l'infrastructure dont vous avez besoin pour créer des applications fiables en temps réel sur Google Cloud. Il s'agit d'un modèle de publication/abonnement qui vous permet de transmettre des messages entre les publications et les abonnements. Google Cloud gère pour vous toute la transmission et la gestion des messages en arrière-plan, il vous suffit d'appeler l'API pour envoyer et recevoir des messages.

Utiliser Google Cloud Pub/Sub dans le langage Go

L'utilisation de Google Cloud Pub/Sub dans le langage Go nécessite de suivre les trois étapes suivantes :

  1. Créer un projet Google Cloud Pub/Sub et définir l'autorisation
  2. Utiliser Google Cloud Pub/ Sub API Créez un sujet et abonnez-vous
  3. Envoyez et recevez des messages à l'aide de la bibliothèque Google Cloud Pub/Sub en langage Go

Étape 1 : Créez un projet Google Cloud Pub/Sub et définissez l'autorisation

Créez un projet dans Google Cloud Console, sélectionnez le compte payant pour payer et activer l'API Cloud Pub/Sub. Créez ensuite un compte de service et définissez ses rôles sur "Administrateur Pub/Sub" et "Éditeur Pub/Sub". Vous devrez également créer une clé pour que le compte de service s'authentifie lors de l'utilisation de Google Cloud Pub/Sub in Go.

Étape 2 : Utilisez l'API Google Cloud Pub/Sub pour créer un sujet et vous abonner

Utilisez la console ou l'API de Google Cloud Pub/Sub pour créer un sujet et un abonnement. Un sujet représente un expéditeur ou un éditeur à qui des messages peuvent être envoyés. Un abonnement représente un destinataire, ou abonné, qui peut recevoir des messages d'un sujet. Les sujets et les abonnements sont tous deux identifiés par des noms uniques et peuvent être utilisés n'importe où dans le même projet Google Cloud. Vous pouvez facilement créer et gérer des sujets et des abonnements à l'aide des bibliothèques clientes de Google Cloud. Dans Go, vous pouvez utiliser la bibliothèque Google Cloud Pub/Sub pour créer des sujets et des abonnements.

Étape 3 : Utilisez la bibliothèque Google Cloud Pub/Sub en langage Go pour envoyer et recevoir des messages

Dans votre projet Go, utilisez la bibliothèque Google Cloud Pub/Sub pour envoyer et recevoir des messages. Avant d'envoyer un message, créez une PublishRequest et définissez le nom de l'abonnement et le message. La méthode Publish envoie un message à une rubrique abonnée. Avant de recevoir des messages, créez un abonnement et utilisez la méthode Recevoir pour attendre les messages du sujet. Enfin, la méthode Decode est appelée pour décoder le message reçu. Voici un exemple de code Go pour envoyer et recevoir des messages :

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)
    }
}
Copier après la connexion

Conclusion

Google Cloud Pub/Sub est un service de messagerie efficace, fiable et facile à utiliser pour une variété d'applications construites sur Google Cloud Platform. L'utilisation de Google Cloud Pub/Sub dans le langage Go nécessite d'effectuer trois étapes : créer un projet Google Cloud Pub/Sub et configurer l'autorisation, utiliser l'API Google Cloud Pub/Sub pour créer des sujets et des abonnements, et utiliser Google Cloud Pub/Sub dans le langage Go La bibliothèque envoie et reçoit des messages. L'utilisation de Google Cloud Pub/Sub peut grandement simplifier la messagerie et rendre vos applications plus fiables et efficaces.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!