使用 'sqs-extended-jar' 处理大型消息

Large messages handling with 'sqs-extended-jar'

我想使用 Amazon SQS 扩展客户端 jar 来发送和接收大于 256 KB 的消息。 http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/s3-messages.html

如上例link所述,我们需要使用 AmazonSQS sqsExtended = new AmazonSQSExtendedClient(new AmazonSQSClient(credentials), extendedClientConfig);

我的问题是: 它如何处理小于 256 KB 的消息,它是否也在内部将这些消息存储在 s3 中或直接将消息存储在队列本身中?

谢谢,
阿努吉

您链接的文章指出:

具体而言,您使用此库可以:

  • 指定消息是始终存储在 Amazon S3 中还是仅当消息大小超过 256 KB 时才存储。

此设置是通过 ExtendedClientConfiguration class(alwaysThroughS3 属性)设置的。默认情况下是 false,你可以设置它,例如通过使用 withAlwaysThroughS3 方法。

(https://github.com/awslabs/amazon-sqs-java-extended-client-lib/blob/master/src/main/java/com/amazon/sqs/javamessaging/ExtendedClientConfiguration.java)

在示例中,您可以使用以下代码强制标记:

    // Set the SQS extended client configuration with large payload support enabled.
    ExtendedClientConfiguration extendedClientConfig = new ExtendedClientConfiguration()
      .withLargePayloadSupportEnabled(s3, s3BucketName)
      .withAlwaysThroughS3(True);