1.6.1 创建/删除/清理 Queue
创建Queue
方法参数CreateQueueRequest
queueName : String : required
新建的Queue的名称 应只包括字母(大小写敏感)与数字,如testQueue1
queueAttribute : QueueAttribute : optional
新建的Queue的属性,其中包含可选的用户自定义属性,具体如下:
- delaySeconds : int : optional
延迟时间。Message进入Queue之后,在经过延迟时间后才变得可见,从而被用户接收
默认值:0
合法范围: [0, 900]
EMQ可为用户提供更大的延迟时间,如3个月.需用户联系管理员配置. - invisibilitySeconds : int : optional
不可见时间。某条Message被用户接收后,如果没有被用户及时删除,经过不可见时间后,将重新变为可见
默认值:30
合法范围: [0, 43200] - receiveMessageWaitSeconds : int : optional
长轮询的超时时间。长轮询时,请求将被阻塞;直到读到message或超时才返回。
默认为0,表示短轮询. 默认值:0
合法范围: [0, 20] - receiveMessageMaximumNumber : int : optional
一次receiveMessage请求最多可能获取的message条数
默认值:100
合法范围: [1, 100] - messageRetentionSeconds : int:optional
message保留时间。message的过期时间以(sendTimestamp + delayTime)作为计算起点.
超过保留时间的消息,无论是否已经被ACK,都有可能被删除. 默认值:4天
合法范围: [60秒,14天] - messageMaximumBytes : int : optional
队列允许发送的message的最大size,message的属性将被计算在内
默认值:256 KB
合法范围:(0, 256 KB] - partitionNumber: int : optional Queue内部的分片个数,用户不可配.当qps较高或消息堆积数量较多时,需联系管理员增加分片个数,以免影响队列性能.
默认值:4, id为0-3
合法范围:[1, 256] - userAttributes : Map< String, String > : optional
用户自定义Queue属性
queueQuota : QueueQuota : optional
新建的Queue的配额,包含对这个Queue读写请求数目限制. 除了单个Queue有配额限制之外, 一个用户所有Queue的配额总和以及能够创建的Queue的总数也有限制.
- throughput : Throughput : optional
设置对Queue的每秒读写请求数配额. 包含两个字段:
- readQps : long : optional
表示每秒对Queue进行读访问请求的最大次数, 单位为req/sec
默认值:50
合法范围: (0, 100000] - writeQps : long : optional
表示每秒对Queue进行写访问请求的最大次数, 单位为req/sec
默认值:50
合法范围: (0, 100000]
enablePriority : boolean : optional
设置Queue是否允许消息优先级,详见PriorityQueue 默认值:False
topicQueue : boolean : optional
设置Queue是否为topicQueue,详见TopicQueue 默认值:False
defaultTagName : String : optional
设置本属性可以为Queue的defaultTag起别名,并在之后的操作中通过别名来使用defaultTag 创建别名后,用户仍可以使用""(空)来引用defaultTag 关于defaultTag的详细解释,可以参见Tag 相关操作
方法返回CreateQueueResponse
queueName : String
成功创建的Queue的名称。之后所有的请求都应传入这里返回的queueName作为参数,如getQueueInfo()
,sendMessage()
注: 这里返回的queueName与CreateQueueRequest中的不一样,返回的名称会加上用户的id作为前缀. 如用户的developerId为1111
, 则这里返回1111/testQueue1
queueAttribute : QueueAttribute
Queue的属性
queueQuota : QueueQuota
Queue的配额
enablePriority : boolean
Queue是否允许消息优先级。
topicQueue : boolean
Queue是否是topicQueue
defaultTagName : String
Queue的defaultTag的别名,默认为空
删除Queue
方法参数DeleteQueueRequest
queueName : String : required
需要删除的Queue的名称
注: 这里的queueName应设置为CreateQueueResponse中的返回。后面的方法都是如此,不再提示
方法返回void
清除Queue中所有的message,并保持Queue的属性不变
方法参数PurgeQueueRequest
queueName : String : required
需清除message的Queue的名称