登录
首页 >  Golang >  Go问答

使用 Go 发送消息到 RabbitMQ 失败

来源:stackoverflow

时间:2024-03-20 12:00:32 138浏览 收藏

在尝试使用 Go 语言将消息发送到 RabbitMQ 时遇到问题?本文将为您提供一个清晰简洁的解决方案。

问题内容

我刚刚开始阅读有关 rabbitmq 的内容,我正在尝试在 for 循环中发送大量消息。问题是它根本不起作用。

package main

import (
    "fmt"
    "github.com/streadway/amqp"
    "strconv"
)

func main() {
    var connectionString = "amqp://guest:guest@localhost:5672/"
    conn, _ := amqp.Dial(connectionString)
    defer conn.Close()

    ch, _ := conn.Channel()
    defer ch.Close()

    q, _ := ch.QueueDeclare(
        "user_actions", // name
        true,   // durable
        false,   // delete when unused
        false,   // exclusive
        false,   // no-wait
        nil,     // arguments
    )

    for i := 0; i < 10000; i++ {
        body := "Hello from Go! " + strconv.Itoa(i)
        ch.Publish(
            "",     // exchange
            "hello", // routing key
            false,  // mandatory
            false,  // immediate
            amqp.Publishing {
                ContentType: "text/plain",
                Body:        []byte(body),
            })
        fmt.Println("Sent: "+body)
    }

}

我什至尝试减少迭代次数,甚至尝试在循环之外发送消息,但它不起作用。我做错了什么?


解决方案


提供的代码看起来不错,只是您使用默认交换并提供与队列名称不同的路由名称。

您可能希望使用队列名称作为路由名称。尝试在 ch.Publish 函数中将 user_actions 替换为 hello

理论要掌握,实操不能落!以上关于《使用 Go 发送消息到 RabbitMQ 失败》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>