Maison > développement back-end > Golang > Comment utiliser RabbitMQ pour implémenter la file d'attente de messages dans l'application Golang

Comment utiliser RabbitMQ pour implémenter la file d'attente de messages dans l'application Golang

WBOY
Libérer: 2023-06-05 17:21:04
original
1471 Les gens l'ont consulté

Avec l'essor des applications distribuées et de l'architecture des microservices, les files d'attente de messages sont devenues un moyen important de résoudre la communication et le traitement des données entre les applications. Avec le développement rapide du cloud computing, d'Internet, de l'Internet mobile et de l'Internet des objets, la demande d'échange de données entre les clusters de serveurs et de communication efficace entre les applications devient de plus en plus forte, en tant que support multiprotocole hautes performances. , Un système de file d'attente de messages au niveau de l'entreprise avec une grande évolutivité est devenu l'une des files d'attente de messages les plus populaires aujourd'hui. Cet article explique comment utiliser RabbitMQ pour implémenter des files d'attente de messages dans les applications Golang.

1. Qu'est-ce que RabbitMQ

RabbitMQ est un logiciel de file d'attente de messages open source qui implémente la norme Advanced Message Queuing Protocol (AMQP). Il est écrit en langage Erlang et présente une évolutivité, un débit et une fiabilité élevés. RabbitMQ utilise des messages pour transmettre des données, permettant aux applications de stocker des messages dans des files d'attente afin que d'autres applications puissent les lire et les traiter de manière asynchrone.

2. Installation et configuration de RabbitMQ

Tout d'abord, vous devez télécharger le package d'installation de la plateforme correspondante depuis le site officiel de RabbitMQ. Après l'installation, vous devez modifier le fichier de configuration RabbitMQ Rabbitmq.config pour spécifier le numéro de port par défaut de RabbitMQ et les plug-ins activés.

Exemple de code pour le fichier de configuration lapinmq.config :

[
{rabbit, [{tcp_listeners, [{"0.0.0.0", 5672}]}] },
{rabbitmq_management, [{listener, [{port, 15672}]}]}
].

3. Comment utiliser RabbitMQ dans Golang

# 🎜🎜#
    Installer le client RabbitMQ
Pour utiliser RabbitMQ dans les applications Golang, vous devez d'abord installer le client RabbitMQ. Vous pouvez utiliser la commande suivante pour l'installer : #🎜. 🎜##🎜 🎜#go get github.com/streadway/amqp

Connect to RabbitMQ

  1. Avant d'utiliser RabbitMQ dans Golang, vous devez pour établir une connexion au serveur RabbitMQ. La connexion à RabbitMQ nécessite la configuration de paramètres tels que l'adresse de l'hôte, le port, l'hôte virtuel, l'utilisateur et le mot de passe du serveur RabbitMQ.
Exemple de code pour se connecter à RabbitMQ :

conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")#🎜🎜 #

Créer une chaîne

    Dans RabbitMQ, plusieurs chaînes peuvent être ouvertes en une seule connexion. Channel est le canal de communication entre RabbitMQ et les applications, utilisé pour envoyer et recevoir des messages et configurer des files d'attente et d'autres opérations.
  1. Exemple de code pour créer une chaîne :

ch, err := conn.Channel()

Créer une file d'attente

    Dans RabbitMQ, les files d'attente sont utilisées pour stocker les messages. Une file d'attente est un tampon de messages nommé qui contient les messages envoyés par une application.
  1. Exemple de code pour créer une file d'attente :

q, err := ch.QueueDeclare(

"hello",    //队列名称
false,      //是否持久化队列
false,      //是否自动删除
false,      //是否独占队列
false,      //队列阻塞等待
nil,        //额外的属性
Copier après la connexion

)

# 🎜🎜#Send Message

Dans RabbitMQ, utilisez la méthode basic.publish pour envoyer des messages à la file d'attente. Le message contient deux parties : les attributs et la charge utile. Les propriétés contiennent certaines métadonnées du message, telles que la persistance du message, la priorité du message, etc. La charge utile est le contenu réel du message envoyé.
  1. Exemple de code pour envoyer un message :
err = ch.Publish(

"",         //交换机名称
q.Name,     //队列名称
false,      //是否强制发送到队列
false,      //是否持久化消息
amqp.Publishing {
    ContentType: "text/plain",
    Body:        []byte("Hello World!"),
},
Copier après la connexion

)

#🎜🎜 # Recevoir des messages

Dans RabbitMQ, utilisez la méthode basic.consume pour vous abonner à la file d'attente des messages Lorsqu'un message arrive, la fonction de rappel sera appelée pour traiter le message.

    Exemple de code pour recevoir des messages :
  1. msgs, err := ch.Consume(
q.Name, //队列名称
"",     //用于区分多个消费者
true,   //是否自动确认消息
false,  //是否独占队列
false,  //队列阻塞等待
nil,    //额外的属性
Copier après la connexion

)

go func() {

for d := range msgs {
    log.Printf("Received a message: %s", d.Body)
}
Copier après la connexion

}()

4. Résumé

L'utilisation de la file d'attente de messages est un moyen d'améliorer la communication et le traitement des données entre les applications. méthode efficace pour l'efficacité, et RabbitMQ, en tant que système de file d'attente de messages avec une évolutivité, un débit et une fiabilité élevés, est devenu l'une des files d'attente de messages les plus populaires aujourd'hui. Pour utiliser RabbitMQ pour implémenter des files d'attente de messages dans les applications Golang, vous devez d'abord installer le client RabbitMQ, établir une connexion avec le serveur RabbitMQ, créer des canaux, des files d'attente et envoyer et recevoir des messages. Cet article présente les concepts de base de RabbitMQ et comment utiliser RabbitMQ pour implémenter des files d'attente de messages dans les applications Golang. J'espère qu'il pourra fournir une référence aux développeurs Golang pour apprendre et utiliser RabbitMQ.

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