在 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'的队列。然后,它创建了一个消息批次,将批次中的每个消息发布到队列中。在每个消息被发送时,都会输出消息的内容。

Golang RabbitMQ 批量发送消息教程

原文地址: https://www.cveoy.top/t/topic/lCCL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录