我正在通过在 GoLang 中构建一个小型应用程序来学习 RabbitMQ - 在此处遵循此示例: https: //www.rabbitmq.com/tutorials/tutorial-one-go.html。我的项目具有以下结构:project└───cmd│ └───api│ │ main.go│ └───internal│ │ rabbitmq.go在cmd/internal/rabbitmq.go我有以下代码 - (错误是错误的):import ( ... amqp "github.com/rabbitmq/amqp091-go")func NewRabbitMQ() (*RabbitMQ, error) { // Initialise connection to RabbitMQ conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/") // Initialise Channel ch, err := conn.Channel() // Initialise Queue q, err := ch.QueueDeclare( "hello", // name false, // durable false, // delete when unused false, // exclusive false, // no-wait nil, // arguments ) // Set Context ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() body := "Hello World!" err = ch.PublishWithContext( // errors here ctx, // context "", // exchange q.Name, // routing key false, // mandatory false, // immediate amqp.Publishing{ ContentType: "text/plain", Body: []byte(body), }) return &RabbitMQ{}, nil}据我所知,根据文档,这是应该如何实现的,所以我不确定为什么会出错。我曾尝试使用谷歌搜索来寻找解决此问题的帮助,但无济于事。我正在使用 Go 1.19,也许这是一个问题?
1 回答
慕妹3146593
TA贡献1820条经验 获得超9个赞
这是一个简单的修复!问题是我使用的 RabbitMQ 版本较旧,所以我只需要更改我的go.mod
版本:
require github.com/rabbitmq/amqp091-go v1.1.0
到:
require github.com/rabbitmq/amqp091-go v1.4.0
- 1 回答
- 0 关注
- 134 浏览
添加回答
举报
0/150
提交
取消