RabbitMQ–基础–7.6–工作模式–RPC模式
1、介绍
- RPC 远程过程调用,客户端远程调用服务端的方法,使用MQ可以实现RPC的异步调用
- 基于Direct交换机实现
1.1、 模型
1.2、 流程
- 生产者发送请求(消息)时,在消息的属性(MessageProperties,在AMQP协议中定义了14个属性,这些属性会随着消息一起发送)中设置两个属性值replyTo(一个Queue名称,用于告诉消费者处理完成后将通知我的消息发送到这个Queue中)和correlationId(此次请求的标识号,消费者处理完成后需要将此属性返还,生产者将根据这个id了解哪条请求被成功执行了或执行失败)。
- 消费者收到消息并处理。
- 消费者处理完消息后,将生成一条应答消息到replyTo指定的Queue,同时带上correlationId属性。
- 生产者之前已订阅replyTo指定的Queue,从中收到服务器的应答消息后,根据其中的correlationId属性分析哪条请求被执行了,根据执行结果进行后续业务处理。