以下是一个简单的示例,演示如何在 Go 中使用 RabbitMQ 建立一个连接并创建多个通道:

package main

import (
    "fmt"
    "log"

    "github.com/streadway/amqp"
)

func main() {
    // 创建RabbitMQ连接
    conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
    if err != nil {
        log.Fatalf("Failed to connect to RabbitMQ: %v", err)
    }
    defer conn.Close()

    // 创建多个通道
    ch1, err := conn.Channel()
    if err != nil {
        log.Fatalf("Failed to open a channel: %v", err)
    }
    defer ch1.Close()

    ch2, err := conn.Channel()
    if err != nil {
        log.Fatalf("Failed to open a channel: %v", err)
    }
    defer ch2.Close()

    // 在通道上执行操作
    q1, err := ch1.QueueDeclare("queue1", false, false, false, false, nil)
    if err != nil {
        log.Fatalf("Failed to declare a queue: %v", err)
    }
    fmt.Println("Queue1 created:", q1.Name)

    q2, err := ch2.QueueDeclare("queue2", false, false, false, false, nil)
    if err != nil {
        log.Fatalf("Failed to declare a queue: %v", err)
    }
    fmt.Println("Queue2 created:", q2.Name)
}

该示例使用 amqp 包来建立连接和通道,并使用 Channel() 函数创建多个通道。然后,它在每个通道上声明一个队列,并输出队列的名称。注意,每个通道都需要单独关闭,以释放资源。

Go RabbitMQ: 使用单个连接创建多个通道

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

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