Go RabbitMQ: 使用单个连接创建多个通道
以下是一个简单的示例,演示如何在 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() 函数创建多个通道。然后,它在每个通道上声明一个队列,并输出队列的名称。注意,每个通道都需要单独关闭,以释放资源。
原文地址: https://www.cveoy.top/t/topic/lAeq 著作权归作者所有。请勿转载和采集!