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



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

如上面链接中的示例所述,我们需要使用AmazonSQS sqsExtended=新的AmazonSQSExtendedClient(新AmazonSQSClient(凭据),extendedClientConfig);

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

谢谢,
Anuj

您链接的文章声明:

具体来说,您使用此库来:

  • 指定消息是始终存储在AmazonS3中,还是仅在消息大小超过256KB时存储

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

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

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

//在启用大负载支持的情况下设置SQS扩展客户端配置。ExtendedClientConfigurationextendedClientConfig=新的ExtendedClientConfiguration().已启用LargePayloadSupport(s3,s3BucketName).带AlwaysThroughS3(True);