java - 使用 RabbitMQ 进行 RPC 风格的通信:模板 convertSendAndReceive 与推送/订阅风格
问题描述
我正在使用 RabbitMQ 实现 RPC 样式的通信,其想法是创建异步管道架构。我正在使用 Java Spring 和 AMQP。
我将执行一个 RPC 式通信链——与一个服务器的通信将触发另一个,另一个将触发另一个,直到最终到达链的末端并且启动链的服务器接收最终答案。我找到了两种似乎适合我需要的技术:
asyncRabbitTemplate
'sconvertSendAndReceive(...)
: 使用这种方法推送,一旦消费者收到,触发另一个convertSendAndReceive(...)
等等......一个链,直到最终结果最终到达启动整个过程的服务器。使用推送/订阅模式,其中一个生产者将使用 推送
convertAndSend(...)
,消费者将通过监听@RabbitListen
并推送到正在监听的另一个,依此类推;在此设置中,初始convertAndSend(...)
调用的服务器将收到最终响应。
我不确定这些方法有什么区别?什么时候选择其中一个?有性能权衡吗?一个比另一个需要更多的编程工作吗?
解决方案
推荐阅读
- resharper - 如何显示
在智能意义上? - c# - C# 使用 StreamReader.Read() 转换短 utf8 序列或格式错误的 UTF8
- javascript - 单击菜单项时如何重定向到reactjs组件
- javascript - 如何将相机始终设置在用户地理位置的中心
- php - 结合mysql结果
- php - 不显示带有 Skype 链接的 Href
- snowflake-cloud-data-platform - 数据共享 如何与读者帐户共享 UDF?
- python - Python script export to .exe including some excel and numpy calculations
- vba - 如何在没有重复代码的情况下编写 or 语句(VBA)
- amazon-web-services - 如何在 AWS ApiGatewy 方法中设置自定义标头