内容纲要

RabbitMQ 中实现 RPC 的机制是:

  • 客户端发送请求(消息)时,在消息的属性(MessageProperties,在 AMQP 协议中定义了 14 中 properties,这些属性会随着消息一起发送)中设置两个值 replyTo(一个 Queue 名称,用于告诉服务器处理完成后将通知我的消息发送到这个 Queue 中)和 correlationId(此次请求的标识号,服务器处理完成后需要将此属性返还,客户端将根据这个 id 了解哪条请求被成功执行了或执行失败)
  • 服务器端收到消息并处理
  • 服务器端处理完消息后,将生成一条应答消息到 replyTo 指定的 Queue,同时带上 correlationId 属性
  • 客户端之前已订阅 replyTo 指定的 Queue,从中收到服务器的应答消息后,根据其中的 correlationId 属性分析哪条请求被执行了,根据执行结果进行后续业务处理

这里面有指出生产者会监听另一个 replyTo 的队列,从中取得对应应答消息触发后续操作。

发表评论

电子邮件地址不会被公开。 必填项已用*标注