专栏首页RabbitMQ实战AMQP-RabbitMQ/6/RPC模式/关注消息处理结果

AMQP-RabbitMQ/6/RPC模式/关注消息处理结果

6. RPC

But what if we need to run a function on a remote computer and wait for the result? Well, that's a different story. This pattern is commonly known as Remote Procedure Call or RPC. 大概意思是说,上面几种模式都是生产者将消息发送到Rabbitmq,然后就不管了,也不管是否有消费者进行了消费,也不管消费的结果是怎样的。上面几种场景已经可以满足大多数需求。但是有一种场景是生产者必须知道消费结果才能进行后续操作,

  • 图示
  • Our RPC will work like this:
  • For an RPC request, the Client sends a message with two properties: replyTo, which is set to a anonymous exclusive queue created just for the request, and correlationId, which is set to a unique value for every request.
  • The request is sent to an rpc_queue queue.
  • The RPC worker (aka: server) is waiting for requests on that queue. When a request appears, it does the job and sends a message with the result back to the Client, using the queue from the replyTo field.
  • The client waits for data on the reply queue. When a message appears, it checks the correlationId property. If it matches the value from the request it returns the response to the application.

源代码: 基于xml配置的SpringMvc项目https://github.com/FutaoSmile/SpringMvcStudyBaseXML

本文分享自微信公众号 - 喜欢天文(AllUnderControl)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 不是吧阿sir,你不会还不知道Github可以当做Maven仓库吧

    喜欢天文的pony站长
  • AMQP-RabbitMQ/1/概念/一对一简单模型

    喜欢天文的pony站长
  • Finished, saving caches

    喜欢天文的pony站长
  • Python中的passed by assignment与.NET中的passing by reference、passing by value

    Remember that arguments are passed by assignment in Python. Since assignment jus...

    雪飞鸿
  • Async方法死锁的问题 Don't Block on Async Code(转)

    今天调试requet.GetRequestStreamAsync异步方法出现不返回的问题,可能是死锁了。看到老外一篇文章解释了异步方法死锁的问题,懒的翻译,直接...

    kklldog
  • 反应速率相关动态边界条件下Cahn-Hilliard方程的数值逼近及误差分析(cs)

    我们考虑了与反应速率相关的动态边界条件下的Cahn-Hilliard方程的数值逼近和误差分析(P. Knopf等人,arXiv, 2020)。基于稳定线性隐式方...

    用户7454091
  • redis配置详解(中英文)

    V2.8.21: (中英字幕同步) # Redis configuration file example #* Redis 配置文件例子 # Note on...

    三丰SanFeng
  • 使用Python制作3个简易地图

    在处理地理空间数据时,经常需要以最自然的方式可视化这些数据:地图。如果可以使用Python快速轻松地创建数据的交互式地图,在本教程中使用洛杉矶县所有星巴克位置的...

    代码医生工作室
  • SDP(10):文本式大数据运算环境-MongoDB-Engine功能设计

        为了让前面规划的互联网+数据平台能有效对电子商务数据进行管理及实现大数据统计功能,必须在平台上再增加一个MongDB-Engine:数据平台用户通过传入...

    用户1150956
  • Task 7 FCN README

    This is a fully-connected network(8 strides) implementation on the dataset ADE20...

    平凡的学生族

扫码关注云+社区

领取腾讯云代金券