1,如果要开发消息队列,需要创建交换机和队列,通常有2中方式创建,1种是在面板直接创建
2,第二种就是在代码中创建,这里 展示的是go语言代码中创建rabbitmq
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!") }