一、介绍
在RabbitMQ中,无论是生产者和消费者实际上都属于Client。一个Client发送消息,哪些Client可以收到消息,其核心就在于Exchange(交换机),RoutingKey(路由键),Queue(队列)的关系上
生产者:
-
通过Channel声明Queue
-
通过Channel声明Exchange(需指定Exchange type)
-
创建Binding(指定一个BindingKey将Queue绑定到Exchange上)
-
发送消息(需指定RoutingKey和Exchange)
消费者:
-
通过Channel声明Queue
-
从Queue中取消息
在两个角色中:
-
生产者需要关注的是Exchange名称(因为消息需要指定发送到哪个Exchange)以及Exchange和Queue的绑定关系即Binding,所以下面的示例代码中将Exchange的定义以及Binding关系都写在了生产者中(实际上这里的代码可以放到功能库中,因为在项目中,这些关系都是通过配置的方式提前写好的)
-
消费者只需要关注自己指定的一个Queue,从其中取消息,它对什么交换器,RoutingKey、Binding应该秉持关我毛事的态度
二、使用
1、安装RabbitMQ
自行安装、使用云服务器...
2、代码结构
3、编写MQ初始化库
package rabbitMq
import (
"github.com/streadway/amqp" //导入mq包
"log"
)
// MQURL 格式 amqp://账号:密码@rabbitmq服