【问题标题】:Amazon SNS -> SQS message bodyAmazon SNS -> SQS 消息正文
【发布时间】:2012-06-09 13:02:32
【问题描述】:

我正在从 SNS 主题向 SQS 发送消息。当我在客户端检查 SQS 消息的正文时,整个消息元数据都在 SQS 正文中发送。

I.E.如果我从主题发送消息“Hello World”,我的客户正在接收:

    BenFlowers {
  "Type" : "Notification",
  "MessageId" : "84102bd5-8890-4ed5-aeba-c15fafc926dc",
  "TopicArn" : "arn:aws:sns:eu-west-1:534706846367:HelloWorld",
  "Message" : "hello World",
  "Timestamp" : "2012-06-05T13:44:22.360Z",
  "SignatureVersion" : "1",
  "Signature" : "Qzh0qXhijBKylaFwc9PGE+lQQDwHGWkIzCW2Ld1eVrxNfSem4yyBTgouqGX26V0m1qhFD4RQcBzE3oNqx5jFhJfV4hN45FNcsFVnmfLPGNUTmJWblSk8f6znWgTy8UtK9xrTeNYzK59k3VJ4WTJ5kCEj+2vH7sBV15fAXeCAtdQ=",
  "SigningCertURL" : "https://sns.eu-west-1.amazonaws.com/SimpleNotificationService-f3ecfb7224c7233fe7bb5f59f96de52f.pem",
  "UnsubscribeURL" : "https://sns.eu-west-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:eu-west-1:534706846367:HelloWorld:8a3acde2-cb0b-4a56-9b9c-b75ed7307556"
}

这有点烦人,因为我不得不在另一端拆分消息正文。速度在这个应用程序中非常重要,所以我想消除它。有什么方法可以只从 SNS 发送消息而忽略其余的元数据?

谢谢, 本

【问题讨论】:

    标签: java amazon-web-services amazon-sqs amazon-sns


    【解决方案1】:

    SNS 最近推出了一项功能,允许您在 SNS 主题上设置“原始消息传递”。

    http://docs.aws.amazon.com/sns/latest/dg/large-payload-raw-message.html

    【讨论】:

    • 可能是一个明显的评论,但“原始/非原始”消息传递适用于订阅,而不适用于 SNS 主题本身。这意味着不同的订阅者可以使用不同的交付方式。
    【解决方案2】:

    SNS 将消息大小限制为 8KB,因此无法使用此服务解决此问题。

    您可以直接将消息发送到 SQS 队列,其限制为 64KB。

    如果您的问题是您放入队列的消息的接收速度,您可以使用 SNS 通知客户端是时候向 SQS 发出请求以接收消息了。

    【讨论】:

    • 问题不在于延迟。只是发送给 SNS 的消息被包裹在一些元数据中,然后发送给 SQS。因此,SQS 消息的使用者将获取元数据以及所需的消息。有什么方法可以修剪元数据并将确切的消息从 SNS 转发到 SQS?
    猜你喜欢
    • 1970-01-01
    • 2021-10-04
    • 2017-08-22
    • 1970-01-01
    • 2015-05-27
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多