RabbitMQ Request/Response 负载结构
RabbitMQ Request/Response payload structure
我正在设计一个系统,它将在应用程序之间 request/response 使用 RabbitMQ。
我习惯于使用 REST API,从那个背景开始,我一直在思考如何在执行 request/response 时构建消息。
我需要构建它来处理几种情况:
- 从远程服务器获取/查询数据
- 正在远程服务器上创建数据
- 处理客户端错误
我打算格式化负载 JSON。我正在考虑使用某种类似于 HTTP 的响应代码(也许使用相同的代码?)并将响应代码设置为消息上的 property/header。
对于 getting/querying,我的想法是在负载对象中有一个查询 属性。
但这让我想到我可能认为这太像 REST API 了,可能有一些更好、更成熟的方法来做到这一点。
我在设置它时一直在阅读 "RabbitMQ in Action" 这本书,但我没有看到那里提到它。我的 google-fu 也让我失望,没有提供任何结果。
有经验的人愿意分享他们是如何组织消息的吗?
如果您在 request/response 应用程序中的 request/response 场景中使用 RabbitMQ,并且这些应用程序已经熟悉或已实现处理 REST 调用,则您无需在 RabbitMQ 中偏离它的消息格式。
根据您的问题,我了解到 RabbitMQ 充当您的应用程序之间的中间服务器。你提到了三种情况。如果以获取数据和写入数据为例,这里RabbitMQ只是充当请求获取或写入数据的应用程序与获取和写入数据的应用程序之间的路由器。如果是这样,则已经存在服务应用程序(具有数据的服务器)可能支持的标准消息格式。假设它还没有定义标准。在这种情况下,您可以考虑应用程序对请求负载的期望。在此阶段忘记中间 RabbitMQ 服务器。考虑 RabbitMQ 消息可能会使您偏离最佳实践。
至于客户端错误,您不能直接将 HTTP 状态代码设置为 headers,因为它会干扰消费者中的 RabbitMQ 错误。我相信,在这种情况下,您必须通过传递自定义 header 并稍后将其转换为 HTTP 状态代码来使用自定义。
我正在设计一个系统,它将在应用程序之间 request/response 使用 RabbitMQ。
我习惯于使用 REST API,从那个背景开始,我一直在思考如何在执行 request/response 时构建消息。
我需要构建它来处理几种情况:
- 从远程服务器获取/查询数据
- 正在远程服务器上创建数据
- 处理客户端错误
我打算格式化负载 JSON。我正在考虑使用某种类似于 HTTP 的响应代码(也许使用相同的代码?)并将响应代码设置为消息上的 property/header。
对于 getting/querying,我的想法是在负载对象中有一个查询 属性。
但这让我想到我可能认为这太像 REST API 了,可能有一些更好、更成熟的方法来做到这一点。
我在设置它时一直在阅读 "RabbitMQ in Action" 这本书,但我没有看到那里提到它。我的 google-fu 也让我失望,没有提供任何结果。
有经验的人愿意分享他们是如何组织消息的吗?
如果您在 request/response 应用程序中的 request/response 场景中使用 RabbitMQ,并且这些应用程序已经熟悉或已实现处理 REST 调用,则您无需在 RabbitMQ 中偏离它的消息格式。
根据您的问题,我了解到 RabbitMQ 充当您的应用程序之间的中间服务器。你提到了三种情况。如果以获取数据和写入数据为例,这里RabbitMQ只是充当请求获取或写入数据的应用程序与获取和写入数据的应用程序之间的路由器。如果是这样,则已经存在服务应用程序(具有数据的服务器)可能支持的标准消息格式。假设它还没有定义标准。在这种情况下,您可以考虑应用程序对请求负载的期望。在此阶段忘记中间 RabbitMQ 服务器。考虑 RabbitMQ 消息可能会使您偏离最佳实践。
至于客户端错误,您不能直接将 HTTP 状态代码设置为 headers,因为它会干扰消费者中的 RabbitMQ 错误。我相信,在这种情况下,您必须通过传递自定义 header 并稍后将其转换为 HTTP 状态代码来使用自定义。