本文对Amazon SQS 消息队列的属性进行了总结并简要说明,仅供参考,如果错误敬请指正,谢谢!
参考资料:官方文档
/**
* 所有属性(例如:getQueueAttributes接口传ALL则查询所有属性)
*/
ALL(QueueAttributeName.ALL),
/**
* 当前队列中消息的大致数目
*/
APPROXIMATE_NUMBER_OF_MESSAGES(QueueAttributeName.APPROXIMATE_NUMBER_OF_MESSAGES),
/**
* 当前队列中延迟的消息的大致数目
*/
APPROXIMATE_NUMBER_OF_MESSAGES_DELAYED(QueueAttributeName.APPROXIMATE_NUMBER_OF_MESSAGES_DELAYED),
/**
* 当前队列中不可见的消息的大致数目(正在被消费的消息不可见)
*/
APPROXIMATE_NUMBER_OF_MESSAGES_NOT_VISIBLE(QueueAttributeName.APPROXIMATE_NUMBER_OF_MESSAGES_NOT_VISIBLE),
/**
* 创建时间时间戳
*/
CREATED_TIMESTAMP(QueueAttributeName.CREATED_TIMESTAMP),
/**
* 队列中所有消息延迟传递的时间长度(以秒为单位)。有效值:0 到 900(15 分钟)之间的整数。默认值:0。
* - 对于标准队列,每队列延迟设置为不追溯-更改此设置不会影响队列中已有的消息的延迟。
* - 对于 FIFO 队列,每队列延迟设置为追溯-更改此设置会影响队列中已有的消息的延迟。
*/
DELAY_SECONDS(QueueAttributeName.DELAY_SECONDS),
/**
* * 仅适用于FIFO(先进先出)队列
* 启用基于内容的重复数据删除。有关更多信息,请参阅Amazon SQS 开发人员指南中的 恰好一次处理。请注意以下事项:
* - 每条消息都必须有一个唯一的MessageDeduplicationId.
* - - 您可以MessageDeduplicationId明确提供一个。
* - - 如果您无法提供 aMessageDeduplicationId并且ContentBasedDeduplication为您的队列启用,Amazon SQS 使用 SHA-256 哈希来生成MessageDeduplicationIdusing 消息正文(但不是消息的属性)。
* - - 如果您不提供 aMessageDeduplicationId且队列未ContentBasedDeduplication设置,则操作将失败并显示错误。
* - - 如果队列已ContentBasedDeduplication设置,您将MessageDeduplicationId覆盖生成的队列。
* - 当ContentBasedDeduplication有效时,具有相同内容的消息去重间隔内发送视为重复,只有一个消息的副本被传递。
* - 如果您发送一条已ContentBasedDeduplication启用的消息,然后发送另一条消息,该消息与MessageDeduplicationId为第一条生成的消息相同MessageDeduplicationId,则这两条消息将被视为重复消息,并且只会传递该消息的一个副本。
*/
CONTENT_BASED_DEDUPLICATION(QueueAttributeName.CONTENT_BASED_DEDUPLICATION),
/**
* * 仅适用于FIFO(先进先出)队列
* 指定是在消息组级别还是队列级别进行消息重复数据删除。有效值为messageGroup和queue。
* 注意:要为 FIFO 队列启用高吞吐量,设置DeduplicationScope为messageGroup。
*/
DEDUPLICATION_SCOPE(QueueAttributeName.DEDUPLICATION_SCOPE),
/**
* * 仅适用于FIFO(先进先出)队列
* 指定 FIFO 队列吞吐量配额是应用于整个队列还是每个消息组。有效值为perQueue和perMessageGroupId。
* 该perMessageGroupId值只允许当值DeduplicationScope的messageGroup。
* 注意:要为 FIFO 队列启用高吞吐量,设置FifoThroughputLimit为perMessageGroupId。
*/
FIFO_THROUGHPUT_LIMIT(QueueAttributeName.FIFO_THROUGHPUT_LIMIT),
/**
* 是否设置为fifo队列。值为"true"或"false"。(默认false)
*/
FIFO_QUEUE(QueueAttributeName.FIFO_QUEUE),
/**
* Amazon SQS 或自定义 CMK 的 AWS 托管客户主密钥 (CMK) 的 ID。 有关更多信息,请参阅关键术语。
* 虽然 Amazon SQS 的 AWS 托管 CMK 的别名始终是 alias/aws/sqs,但自定义 CMK 的别名可以是,例如 alias/MyAlias 。
* 有关更多示例,请参阅 AWS Key Management Service API Reference 中的 KeyId。
* 注意:空字符串表示禁用服务的加密,null为非法参数值
*/
KMS_MASTER_KEY_ID(QueueAttributeName.KMS_MASTER_KEY_ID),
/**
* 在再次调用 AWS KMS 之前,Amazon SQS 可以重复使用数据密钥来加密或解密消息的时间长度(以秒为单位)。
* 一个表示秒的整数,介于 60 秒(1 分钟)和 86400 秒(24 小时)之间。默认值:300(5 分钟)。
* 较短的时间段可提供更好的安全性,但会导致对 KMS 的更多调用,这可能会在免费套餐之后产生费用。
*/
KMS_DATA_KEY_REUSE_PERIOD_SECONDS(QueueAttributeName.KMS_DATA_KEY_REUSE_PERIOD_SECONDS),
/**
* 最后修改时间时间戳
*/
LAST_MODIFIED_TIMESTAMP(QueueAttributeName.LAST_MODIFIED_TIMESTAMP),
/**
* 消息在 Amazon SQS 拒绝之前可以包含的字节数限制。有效值:从 1024 字节 (1 KiB) 到 262144 字节 (256 KiB) 的整数。默认值:262144 (256 KiB)。
*/
MAXIMUM_MESSAGE_SIZE(QueueAttributeName.MAXIMUM_MESSAGE_SIZE),
/**
* Amazon SQS 保留消息的时间长度(以秒为单位)。有效值:代表秒的整数,从 60(1 分钟)到 1209600(14 天)。默认值:345600(4 天)。
*/
MESSAGE_RETENTION_PERIOD(QueueAttributeName.MESSAGE_RETENTION_PERIOD),
/**
* 队列的策略。有效的 AWS 策略。有关政策结构的详细信息,请参阅AWS IAM策略概述 在 AWS身份和访问管理用户指南。
*/
POLICY(QueueAttributeName.POLICY),
/**
* 资源名称,用于指定死信队列,将死信队列的 QUEUE_ARN 配置到源队列的 REDRIVE_POLICY.deadLetterTargetArn
*/
QUEUE_ARN(QueueAttributeName.QUEUE_ARN),
/**
* 包含源队列死信队列功能参数的字符串作为 JSON 对象。有关重新驱动策略和死信队列的更多信息,请参阅Amazon SQS 开发人员指南 中的使用 Amazon SQS 死信队列。
* - deadLetterTargetArn– 在maxReceiveCount超过的值后,Amazon SQS 将消息移动到的死信队列的 Amazon 资源名称 (ARN) 。
* - maxReceiveCount– 消息在移动到死信队列之前传递到源队列的次数。当ReceiveCountfor a 消息超过maxReceiveCountfor a queue 时,Amazon SQS 会将消息移至死信队列。
* 注意:FIFO 队列的死信队列也必须是 FIFO 队列。同样,标准队列的死信队列也必须是标准队列。
*/
REDRIVE_POLICY(QueueAttributeName.REDRIVE_POLICY),
/**
* 操作等待消息到达的时间长度(以秒为单位)。有效值:从 0 到 20(秒)的整数。默认值:0。
* 默认为0,则接收消息为短轮询;改变值可启用长轮询。(优先级低于ReceiveMessage接口的WaitTimeSeconds参数)
*/
RECEIVE_MESSAGE_WAIT_TIME_SECONDS(QueueAttributeName.RECEIVE_MESSAGE_WAIT_TIME_SECONDS),
/**
* 字面意思,未知SDK版本。实际是消息系统属性枚举MessageSystemAttributeNameForSends的一个值,
* 这个“属性”的值其实是null,不是真正的属性,可以理解为它是系统属性枚举的一个“空值”。
*/
UNKNOWN_TO_SDK_VERSION(QueueAttributeName.UNKNOWN_TO_SDK_VERSION),
/**
* 队列的可见性超时,以秒为单位。一条消息被某一消费者接收后,在可见性超时时间之内,这条消息对其他消费者不可见。
* 有效值:0 到 43200(12 小时)之间的整数。默认值:30。有关可见性超时的更多信息,请参阅Amazon SQS 开发人员指南中的可见性超时。
*/
VISIBILITY_TIMEOUT(QueueAttributeName.VISIBILITY_TIMEOUT),
;