- 1.2 EMQ简介
- 1.3 快速开始
- 1.3.1 集群信息
- 1.3.2 控制台管理示例
- 1.3.3 代码示例
- 1.3.4 SDK
- 1.4 基础知识
- 1.4.1 基本概念
- 1.4.2 消息状态和接收模型
- 1.5 常见问题
- 1.5.1 Queue
- 1.5.2 Message
- 1.5.3 常见异常
- 1.5.4 其他
- 1.6 Queue API
- 1.6.1 创建/删除/清理 Queue
- 1.6.2 设置 Queue 属性/配额
- 1.6.3 获取 Queue 信息
- 1.6.4 Queue 权限操作
- 1.6.5 拷贝 Queue 元数据
- 1.7 Message API
- 1.7.1 发送 Message
- 1.7.2 接收 Message
- 1.7.3 更改 Message 不可见时间
- 1.7.4 删除(ACK) Message
- 1.7.5 重新驱动 Message
- 1.7.6 查询 Message
- 1.7.7 直接删除 Message
- 1.8 报警/统计 API
- 1.8.1 设置/获取 用户联系/配额信息
- 1.8.2 添加/移除/获取 Queue 报警策略
- 1.8.3 设置/获取 Queue 每日消息统计
- 1.9 高级队列功能
- 1.9.1 多读者/Tag
- 1.9.1.1 模型介绍
- 1.9.1.2 相关API
- 1.9.2 死信队列
- 1.9.3 Topic Queue
- 1.9.4 Priority Queue
- 1.10 计费规则
- 1.11 新旧版认证迁移
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的名称
方法返回void
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论