在您已经能够添加邮件属性的情况下,在SQS中使用邮件正文的目的是什么?
让我们举一个例子,我们想在新用户注册时将消息推送到new-user
队列,我想这封邮件将有一个属性userId
,我不会'请参阅此处使用body
。
答案 0 :(得分:12)
消息属性应该用作消息元数据(如时间戳或某些类别),而不是消息本身。
理想情况下,消息有效负载应在消息正文中给出
因此,例如,如果您支持JSON和XML有效负载,那么您可以将有效内容类型作为消息属性,然后在获取消息时,根据此有效内容类型属性,您可以在JSON消息处理器或XML消息处理器之间进行选择。这只是解释属性和正文
用法的一个表面示例以下是AWS Doc的摘录
Amazon SQS提供对邮件属性的支持。消息属性允许您提供有关消息的结构化元数据项(例如时间戳,地理空间数据,签名和标识符)。消息属性是可选的,与消息体分开,但与消息体一起发送。消息的接收者可以使用该信息来帮助决定如何处理消息而无需首先处理消息体。每条消息最多可包含10个属性。要指定消息属性,您可以使用AWS管理控制台,AWS软件开发工具包(SDK)或查询API。
答案 1 :(得分:3)
要与rabbitMQ
或Kafka
世界等传统队列提供者进行映射。
我们可以理解如下:
message_body=message_payload
message_attributes=message_headers ( can be used to apply different routing and filtering message using their headers information)
事实上,我更喜欢术语payload
和headers
而不是aws sqs中使用的术语,这有点令人困惑。
消息属性听起来更像消息有效负载的属性