Golang RabbitMQ 批量发送消息教程
在 Golang 中,可以使用 RabbitMQ Go 客户端库来实现批量发送消息。下面是一个示例代码,可以发送多个消息到 RabbitMQ 中:
package main
import (
"fmt"
"log"
"github.com/streadway/amqp"
)
func main() {
conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
if err != nil {
log.Fatalf("Failed to connect to RabbitMQ: %v", err)
}
defer conn.Close()
ch, err := conn.Channel()
if err != nil {
log.Fatalf("Failed to open a channel: %v", err)
}
defer ch.Close()
queueName := "my_queue"
// Declare a queue to ensure it exists
_, err = ch.QueueDeclare(
queueName, // name
true, // durable
false, // delete when unused
false, // exclusive
false, // no-wait
nil, // arguments
)
if err != nil {
log.Fatalf("Failed to declare a queue: %v", err)
}
// Batch of messages
messages := []string{'message 1', 'message 2', 'message 3'}
// Publish messages to the queue
for _, message := range messages {
err = ch.Publish(
"", // exchange
queueName, // routing key
false, // mandatory
false, // immediate
amqp.Publishing{
ContentType: "text/plain",
Body: []byte(message),
},
)
if err != nil {
log.Fatalf("Failed to publish a message: %v", err)
}
fmt.Printf("Message sent: %s\n", message)
}
}
该代码示例首先建立与 RabbitMQ 服务器的连接,然后创建一个名为'my_queue'的队列。然后,它创建了一个消息批次,将批次中的每个消息发布到队列中。在每个消息被发送时,都会输出消息的内容。
原文地址: https://www.cveoy.top/t/topic/lCCL 著作权归作者所有。请勿转载和采集!