golang整合rabbitmq,创建交换机并绑定队列

1,如果要开发消息队列,需要创建交换机和队列,通常有2中方式创建,1种是在面板直接创建

2,第二种就是在代码中创建,这里 展示的是go语言代码中创建rabbitmq

c 复制代码
package main

import (
	"fmt"
	"log"

	"github.com/streadway/amqp"
)

func main() {
	// 连接RabbitMQ服务器
	conn, err := amqp.Dial("amqp://guest:guest@服务器地址: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()

	// 声明一个交换机
	err = ch.ExchangeDeclare(
		"my_exchange", // 交换机名称
		"direct",      // 交换机类型
		true,          // 是否持久化
		false,         // 是否自动删除
		false,         // 是否内部使用
		false,         // 是否等待确认
		nil,           // 其他属性
	)
	if err != nil {
		log.Fatalf("Failed to declare an exchange: %v", err)
	}

	// 声明一个队列
	q, err := ch.QueueDeclare(
		"my_queue", // 队列名称
		true,       // 是否持久化
		false,      // 是否自动删除
		false,      // 是否排他
		false,      // 是否等待确认
		nil,        // 其他属性
	)
	if err != nil {
		log.Fatalf("Failed to declare a queue: %v", err)
	}

	// 绑定队列到交换机
	err = ch.QueueBind(
		q.Name,           // 队列名称
		"my_routing_key", // 路由键
		"my_exchange",    // 交换机名称
		false,            // 是否等待确认
		nil,              // 其他属性
	)
	if err != nil {
		log.Fatalf("Failed to bind a queue: %v", err)
	}

	fmt.Println("Exchange and queue created and bound successfully!")
}
相关推荐
疯狂的程需猿37 分钟前
一个百度、必应搜索引擎图片获取下载的工具包
golang·图搜索
明月看潮生2 小时前
青少年编程与数学 02-003 Go语言网络编程 09课题、Cookie
青少年编程·golang·网络编程·编程与数学
明月看潮生3 小时前
青少年编程与数学 02-003 Go语言网络编程 15课题、Go语言URL编程
开发语言·网络·青少年编程·golang·编程与数学
明月看潮生3 小时前
青少年编程与数学 02-003 Go语言网络编程 14课题、Go语言Udp编程
青少年编程·golang·网络编程·编程与数学
hlsd#4 小时前
go 集成go-redis 缓存操作
redis·缓存·golang
P.H. Infinity10 小时前
【RabbitMQ】03-交换机
分布式·rabbitmq
qq_1728055918 小时前
GIN 反向代理功能
后端·golang·go
__AtYou__18 小时前
Golang | Leetcode Golang题解之第535题TinyURL的加密与解密
leetcode·golang·题解
孤蓬&听雨18 小时前
RabbitMQ自动发送消息工具(自动化测试RabbitMQ)
分布式·测试工具·自动化·rabbitmq·自动发送消息
呼啦啦啦啦啦啦啦啦18 小时前
RabbitMQ 七种工作模式介绍
分布式·rabbitmq