在Go语言中,使用AMQP(Advanced Message Queuing Protocol)库可以实现消息的发布(publish)。下面是一个简单的示例代码,演示如何使用golang的amqp库进行basic_publish操作:
package main
import (
"log"
"github.com/streadway/amqp"
)
func failOnError(err error, msg string) {
if err != nil {
log.Fatalf("%s: %s", msg, err)
}
}
func main() {
conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
failOnError(err, "Failed to connect to RabbitMQ")
defer conn.Close()
ch, err := conn.Channel()
failOnError(err, "Failed to open a channel")
defer ch.Close()
q, err := ch.QueueDeclare(
"hello", // 队列名称
false,
false,
false,
false,
nil,
)
failOnError(err, "Failed to declare a queue")
body := "Hello World!"
err = ch.Publish(
"", // exchange名称,默认为空字符串
q.Name, // routing key,指定要发送到哪个队列
false, // mandatory
false, // immediate
amqp.Publishing{
DeliveryMode: amqp.Persistent,
ContentType: "text/plain",
Body: []byte(body),
})
failOnError(err, "Failed to publish a message")
log.Printf(" [x] Sent %s", body)
}
上述代码通过连接到RabbitMQ服务器,打开通道,并声明了一个名为”hello”的队列。然后调用ch.Publish()
方法发布一条消息,并指定要发送到的队列。消息的内容是”Hello World!“。
请确保已经安装了amqp库,可以使用以下命令进行安装:
go get github.com/streadway/amqp
注意:在实际使用中,需要根据自己的RabbitMQ服务器配置进行相应的修改,包括连接地址、用户名、密码等信息。
内容由零声教学AI助手提供,问题来源于学员提问