gpt4 book ai didi

data-structures - RabbitMQ 请求/响应负载结构

转载 作者:行者123 更新时间:2023-12-02 17:23:45 26 4
gpt4 key购买 nike

我正在设计一个系统,该系统将使用 RabbitMQ 进行应用程序之间的请求/响应。

我习惯于使用 REST API,并且从那个背景出发,我一直在思考如何在执行请求/响应时构建消息。

我需要构建它来处理多种情况:

  • 从远程服务器获取/查询数据
  • 在远程服务器上创建数据
  • 处理客户端错误

我计划对负载进行 JSON 格式化。我正在考虑使用某种类似于 HTTP 的响应代码(也许使用相同的代码?)并将响应代码设置为消息的属性/ header 。

对于获取/查询,我的想法是在有效负载对象中有一个查询属性。

但这让我想到,我可能认为这太像 REST API,并且可能有一些更好、更成熟的方法来做到这一点。

设置时我一直在阅读“RabbitMQ 实战”一书,但我在那里没有看到任何提及。我的 google-fu 也失败了,没有提供任何结果。

任何有经验的人愿意分享他们如何构建他们的消息?

最佳答案

如果您在已经熟悉或已实现处理 REST 调用的应用程序中的请求/响应场景中使用 RabbitMQ,则无需在 RabbitMQ 中偏离消息格式。

根据您的问题,我了解到 RabbitMQ 充当您的应用程序之间的中间服务器。你提到了三种情况。如果以获取数据和写入数据为例,这里RabbitMQ只是充当请求获取或写入数据的应用程序与获取和写入数据的应用程序之间的路由器。如果是这样,则已经存在服务应用程序(具有数据的服务器)可能支持的标准消息格式。假设它还没有定义标准。在这种情况下,您可以考虑应用程序对请求负载的期望。在此阶段忘记中间 RabbitMQ 服务器。考虑 RabbitMQ 消息可能会使您偏离最佳实践。

至于客户端错误,您不能直接将 HTTP 状态代码设置为 header ,因为它会干扰消费者中的 RabbitMQ 错误。我相信,在这种情况下,您将不得不通过传递自定义 header 并稍后将其转换为 HTTP 状态代码来使用自定义。

关于data-structures - RabbitMQ 请求/响应负载结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40532644/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com