Rabbit-new
教程文档:
概要:(初始化操作)
首先使用 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)
接收者查看文档,概不赘述

消息队列工作模式:→