亚马逊 SNS -> SQS 消息正文

15

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

例如,如果我从主题发送一条消息 "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 的消息并忽略其余元数据?

谢谢, Ben

2个回答

21

3
这可能是一个显而易见的评论,但“原始/非原始”的消息传递仅适用于订阅,而不是SNS主题本身。这意味着不同的订阅者可以使用不同的传递模式。 - Dmitriy Popov

0

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

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

如果您的问题是队列中放置的消息的接收速度,则可以使用SNS通知客户端现在是时候向SQS请求要接收的消息了。


1
问题不在于延迟,而是发送到SNS的消息被包装在一些元数据中,然后发送到SQS。因此,SQS消息的消费者会收到元数据和所需消息。有没有办法削减元数据,只将来自SNS的确切消息转发到SQS? - Gurpreet Singh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接