一、基本概念理解
- producer:消息的生产者
- consumer:消息的消费者
- virtual host:虚拟主机(对RabbitMQ进行功能性设置:队列访问、请求处理)
- broker:消息转发者(消息中转站),生产者向他发送消息,消费者从他这里获取消息
- exchange:交换机,生产者每生产一条消息都会为他们生一个routing key(路由键,就是一个字符串)。生产者使用哪个交换机将消息发送到broker的指定queue中便由这个routing key决定。
queue:消息队列,用于存放消息,他接收exchange路由过来的消息,我们可以对队列内容进行持久化操作,那么queue到底接收那个exchange路由的消息呢?这个时候就要用到binding key(绑定键)了,绑定键会将队列和exchange进行绑定,至于绑定方式,RabbitMQ提供了多种方式。
二、实例搭建
1、导包
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>5.2.0</version>
</dependency>
2、创建producer的步骤
(1):创建ConnectionFactory,并且设置一些参数,比如hostname,portNumber等等
(2):利用ConnectionFactory创建一个Connection连接
(3):利用Connection创建一个Channel通道
(4):创建queue并且和Channel进行绑定
(5):创建消息,并且发送到队列中
注:在我们当前的例子中,并没有用到exchange交换机,
RabbitMQ默认情况下是会创建一个空字符串名字的exchange的,
如果我们没有创建自己的exchange的话,默认就是使用的这个exchange;
3、创建consumer的 步骤
(1):创建ConnectionFactory,并且设置一些参数,比如hostname,portNumber等等
(2):利用ConnectionFactory创建一个Connection连接
(3):利用Connection创建一个Channel通道
(4):将queue和Channel进行绑定,注意这里的queue名字要和前面producer创建的queue一致
(5):创建消费者Consumer来接收消息,同时将消费者和queue进行绑定