Avec l'avènement de l'ère du Big Data, les files d'attente de messages, en tant que méthode de communication efficace, sont de plus en plus largement utilisées dans la conception de logiciels. RabbitMQ, en tant que bibliothèque de files d'attente de messages populaire, est également privilégiée par les programmeurs. Cependant, certains programmeurs peuvent rencontrer des problèmes lors de l'utilisation de la bibliothèque RabbitMQ. Cet article présente quelques problèmes courants et comment les résoudre.
Dans les programmes Go, nous devons utiliser des bibliothèques externes via des instructions d'importation. Si nous voulons utiliser la bibliothèque RabbitMQ, nous devons alors ajouter l'instruction d'importation suivante au code :
import ( "github.com/streadway/amqp" )
Si vous rencontrez le message d'erreur suivant :
cannot find package "github.com/streadway/amqp" in any of: /usr/local/go/src/github.com/streadway/amqp (from $GOROOT) /Users/username/go/src/github.com/streadway/amqp (from $GOPATH)
Alors vous pouvez essayer d'utiliser la commande suivante Installer RabbitMQ :
go get github.com/streadway/amqp
Lorsque nous établissons la connexion RabbitMQ par le code suivant :
conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
Vous pouvez rencontrer l'erreur suivante :
dial tcp 127.0.0.1:5672: getsockopt: connection refused
Cela est dû au fait que le service RabbitMQ n'est pas démarré correctement. Vous pouvez vérifier l'état de RabbitMQ et le démarrer via la ligne de commande :
systemctl status rabbitmq-server systemctl start rabbitmq-server
Lors de l'utilisation de RabbitMQ, nous devons déclarez la file d'attente pour stocker le message. Lorsque nous déclarons une file d'attente via le code suivant :
ch, err := conn.Channel() q, err := ch.QueueDeclare("hello", false, false, false, false, nil)
nous pouvons rencontrer l'erreur suivante :
channel/connection is not open
C'est parce que nous devons nous assurer que la connexion et le canal sont tous deux ouvrir. Cela peut être assuré par le code suivant :
conn, _ := amqp.Dial("amqp://guest:guest@localhost:5672/") defer conn.Close() ch, _ := conn.Channel() defer ch.Close() q, _ := ch.QueueDeclare("hello", false, false, false, false, nil)
Lorsque nous publions le message en suivant le code : #🎜🎜 #
err = ch.Publish("", "hello", false, false, amqp.Publishing{ ContentType: "text/plain", Body: []byte("Hello World!"), })
no route to host
err := ch.Publish( "amq.direct", // exchange q.Name, // routing key false, // mandatory false, amqp.Publishing { ContentType: "text/plain", Body: []byte("Hello World!"), })
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!