gpt4 book ai didi

go - 作为发布者连接到 RabbitMQ 的频率

转载 作者:数据小太阳 更新时间:2023-10-29 03:22:30 27 4
gpt4 key购买 nike

<分区>

我实际上是在学习 RabbitMQ 的教程。我希望我的应用程序的微服务能够通过 RabbitMQ 进行通信。

我创建了一个发布者库,每次我想从 microservice_a 向 microservice_b 发送消息时都会使用它。像这样的东西:

发件人.go :

// SendEmail ...
func (s *MessageQueue) SendEmail(body string) {
conn, err := amqp.Dial(fmt.Sprintf("amqp://%s:%s@%s:%d", s.Username, s.Password, s.Host, s.Port))
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(
s.QueueName, // name
true, // durable
false, // delete when unused
false, // exclusive
false, // no-wait
nil, // arguments
)
failOnError(err, "Failed to declare a queue")

err = ch.Publish(
"", // exchange
q.Name, // routing key
false, // mandatory
false, // immediate
amqp.Publishing{
ContentType: "text/plain",
Body: []byte(body),
})
log.Info(" [x] Sender sent: %s", body)
failOnError(err, "Failed to publish a message")
}

我只想知道在发布者的情况下,每次发送消息时是否最好调用 rabbitMQ 并关闭 RabbitMQ/ channel ,或者我是否应该创建专用函数。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com