RabbitMQ生产者和消费者处理流程

最近在玩RabbitMQ,爬坑发现自己对于MQ的整合和运作原理已经熟悉了,但是对于生产者和消费者的操作过程还不是很懂,导致消息队列装好配置好,框架整合好,突然发现还是不会写生产消费的业务,很是尴尬,所以就找了一下资料,了解了一下生产者和消费者的运转过程:

生产者

  1. 建立链接(Connection)
  2. 在链接(Connection)上开启一个信道(Channel)
  3. 声明一个交换机(Exchange)
  4. 声明一个队列(Queue)
  5. 使用路由键(RoutingKey)将队列(Queue)和交换机(Exchange)绑定起来
  6. 根据路由键(RoutingKey)发送消息到交换机(Exchange)
  7. [MQ]根据交换机(Exchange)和路由键(RoutingKey),将消息或存放到队列(Queue),或丢弃,或退回给生产者
  8. 关闭信道(Channel)
  9. 关闭链接(Connection)

消费者

  1. 建立链接(Connection)
  2. 在链接(Connection)上开启一个信道(Channel)
  3. 请求消费指定队列(Queue)的消息,并设置回调函数(onMessage)
  4. [MQ]将消息推送给消费者
  5. 消费者发送消息确定(Ack[acknowledge])
  6. [MQ]删除被确认的消息
  7. 关闭信道(Channel)
  8. 关闭链接(Connection)

可以注意到,无论是生产者还是消费者,第一步都是需要建立连接,再在连接的基础上建立信道。

生产者需要使用交换机来转发信息队列,其中消息绑定的标识就是路由键RoutingKey了。

消费者需要请求队列,消费队列消息,还能使用Ack向消息队列来返回确认信息。

生产和消费操作完毕后,都需要关闭信道再关闭连接,这点和数据库类似。

参考博文:https://blog.csdn.net/u014290054/article/details/78923894

你可能感兴趣的:(RabbitMQ生产者和消费者处理流程)