GoClub Pro

Rabbit-new

最近更新:2026-10-24
本页由同名 OneNote 笔记转换而来,可直接在线阅读;原始笔记文件见「Go语言相关笔记」页的原始链接。

教程文档:

概要:(初始化操作)

 

首先使用 go get 安装 amqp:

go mod init

go get github.com/rabbitmq/amqp091-go

 

 

 

创建主函数并连接到 RabbitMQ 服务器

func main() {

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

failOnError(err, "Failed to connect to RabbitMQ")

defer conn.Close()

}

 

连接抽象了套接字连接,并负责协议版本协商、身份验证等事宜。接下来我们创建一个通道,大多数用于完成任务的 API 都驻留于此:

ch, err := conn.Channel()

failOnError(err, "Failed to open a channel")

defer ch.Close()

 

需要一个辅助函数来检查每个 amqp 调用的返回值:

func failOnError(err error, msg string) {

if err != nil {

log.Panicf("%s: %s", msg, err)

}

}

 

 

要发送消息,我们必须声明一个队列来发送消息;然后我们可以将消息发布到队列中:

q, err := ch.QueueDeclare(

"hello", // name

false, // durable

false, // delete when unused

false, // exclusive

false, // no-wait

nil, // arguments

)

failOnError(err, "Failed to declare a queue")

 

ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)

defer cancel()

 

body := "Hello World!"

err = ch.PublishWithContext(ctx,

"", // exchange

q.Name, // routing key

false, // mandatory

false, // immediate

amqp.Publishing {

ContentType: "text/plain",

Body: []byte(body),

})

failOnError(err, "Failed to publish a message")

log.Printf(" [x] Sent %s\n", body)

 

接收者查看文档,概不赘述

 

 

 

 

笔记图片

消息队列工作模式:→

 

 

内容反馈

发现错误或想补充内容?

GoClub Pro 是静态知识库,评论功能不再加载第三方脚本。你可以在 GitHub 仓库提交 Issue,反馈会直接进入项目协作流程。

提交 GitHub 反馈