生产者发送消息的流程
1、生产者连接RabbitMQ,建立TCP连接(Connection),开启信道(Channel)
2、生产者声明一个Exchange(交换器),并设置相关属性,比如交换器类型、是否持久化等
3、生产者声明一个队列并设置相关属性,比如是否排他、是否持久化、是否自动删除等
4、生产者通过routingKey(路由Key)将交换器和队列绑定(binding)起来
5、生产者发送消息只RabbitMQ Broker,其中包含routingKey(路由键)、交换器等信息
6、相应的交换器根据接收到的routingKey查找相匹配的队列
7、如果找到,则将从生产者发送过来的消息存入相应的队列中
8、如果没有找到,则根据生产者配置的属性选择丢弃还是回退给生产者
9、关闭信道
10、关闭连接
消费者接收消息的流程
1、消费者连接到RabbitMQ Broker,建立一个连接(Connection),开启一个信道(Channel)
2、消费者向RabbitMQ Broker请求消费相应队列的消息,可能会设置相应的回调方法,以及做一些准备工作。
3、等待RabbitMQ Broker回应并投递相应队列中的消息,消费者接收消息。
4、消费者确认(ack)接收到的消息
5、RabbitMQ从队列中删除相应已经被确认的消息
6、关闭信道
7、关闭连接