队列是消息存储的目的地,队列可以分成普通队列和延时队列两类。如果发送消息时不指定消息延时参数,被发送到普通队列的消息立刻可以被消费,而发送到延时队列需要经过设定的延时时间后才能被消费。
队列属性
DelaySeconds
- 消息延迟时间,单位为秒;
- 取值范围:0 ~ 604800秒(7天);
- 当该属性大于0时,发送到队列的所有消息是延迟消息,经过该属性指定的秒数后变为可消费消息;
- 如果发送消息请求指定了DelaySeconds,以请求指定的DelaySeconds为准;
MaximumMessageSize
- 消息体最大长度,单位为Byte;
- 取值范围:1024 ~ 65536Byte(64KB);
- 该属性用于限制发送到队列的消息体最大长度,超过该长度发送消息失败;
MessageRetentionPeriod
- 消息最长保留时间,单位为秒;
- 取值范围:60 ~ 1296000秒(15天);
- 发送到队列的消息最长保留该时长,超过指定时间,无论消息是否被消费都将被删除;
VisibilityTimeout
- 消息被receive后的隐藏时长,单位为秒;
- 取值范围:1 ~ 43200秒(12小时);
- 消息被receive后,在该属性指定的这段时间内消息处于隐藏状态,在这段时间内,可以删除消息或者修改消息隐藏时长;超过这段时间,消息可以再次被receive;
PollingWaitSeconds
- (batch)receive message请求最长等待时间,单位为秒;
- 取值范围:0 ~ 30秒;
- 当队列中没有消息时,(batch)receive message请求将挂在 MNS 服务器端;在该属性指定的时间范围内,如果有消息发送到队列中,立即返回消息给用户;如果超过该时间,仍然没有消息,返回MessageNotExist;
- 如果(batch)receive message请求指定了wait seconds,以请求指定的时间为准;
LoggingEnabled
- 是否开启日志管理功能;
- 取值范围:True/False;
- 当该属性为True时,MNS 将收集队列的消息操作日志推送到指定的地方,日志管理请参考详情;
CreateTime
- 队列创建时间,从1970-1-1 00:00:00 到现在的秒值;
LastModifyTime
- 修改队列属性信息最近时间,从1970-1-1 00:00:00 到现在的秒值;
ActiveMessages
- 队列中处于 Active 状态的消息总数,为近似值;
InactiveMessages
- 队列中处于 Inactive 状态的消息总数,为近似值;
DelayMessages
- 队列中处于 Delayed 状态的消息总数,为近似值;
QueueURL
- 格式:http://$AccountId.mns.<Region>.aliyuncs.com/queues/$QueueName
- mns.<Region>.aliyuncs.com: MNS 访问域名, Region 是 MNS 部署的区域,用户可以根据应用需要选择不同的地域;
- AccountId: 队列所有者的帐号 ID;
- QueueName: 队列名称,同一个AccountId在同 Region 中的队列名不能重名。