使用 '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 方法。
在示例中,您可以使用以下代码强制标记:
// Set the SQS extended client configuration with large payload support enabled.
ExtendedClientConfiguration extendedClientConfig = new ExtendedClientConfiguration()
.withLargePayloadSupportEnabled(s3, s3BucketName)
.withAlwaysThroughS3(True);
我想使用 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 方法。
在示例中,您可以使用以下代码强制标记:
// Set the SQS extended client configuration with large payload support enabled. ExtendedClientConfiguration extendedClientConfig = new ExtendedClientConfiguration() .withLargePayloadSupportEnabled(s3, s3BucketName) .withAlwaysThroughS3(True);