我是golang和rabbitmq的新手,我写过一个像这样的简单制作人
package main
import (
"fmt"
"github.com/streadway/amqp"
"log"
)
func main() {
server()
}
func server() {
conn, ch, q := getQueue()
defer conn.Close()
defer ch.Close()
msg := amqp.Publishing{
ContentType: "text/plain",
Body: []byte("Hello RabbitMQ"),
}
ch.Publish("", q.Name, false, false, msg)
}
func getQueue() (*amqp.Connection, *amqp.Channel, *amqp.Queue) {
conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
failOnError(err, "Failed to connect to RabbitMQ")
ch, err := conn.Channel()
failOnError(err, "Failed to open a channel")
q, err := ch.QueueDeclare("hello",
false, //durable bool,
false, //autoDelete bool,
false, //exclusive bool,
false,
nil)
failOnError(err, "Failed to declare queue")
return conn, ch, &q
}
func failOnError(err error, msg string) {
if err != nil {
log.Fatalf("%s: %s", msg, err)
panic(fmt.Sprintf("%s: %s", msg, err))
}
}
当我运行它时它不会退出niether它是否会抛出任何错误消息。在RabbitMQ管理控制台中,我可以看到队列,但其中没有数据,只显示NaN。
答案 0 :(得分:1)
您的设置可能存在问题。我遇到了类似的问题,尝试使用不同的Erlang和RabbitMQ安装。 尝试卸载Erlang和RabbitMQ,也可以使用较旧的稳定版本。
或者使用官方的RabbitMQ泊坞窗图像。按照Docker RabbitMQ Docs进行设置。 :)