消费消息
功能介绍
消费指定队列中的消息。可同时消费多条消息,每次消费的消息负载不超过512KB。
当队列中消息较少时,单次消费返回的消息数量可能会少于指定条数,但多次消费最终可获取全部消息,当队列为空时,返回为空。
每个消费组只支持一种Label规则,如果第二次消费更换了Label规则,则消费失败。
URI
GET /v1.0/{project_id}/queues/{queue_id}/groups/{consumer_group_id}/messages?max_msgs={max_msgs}&time_wait={time_wait}&ack_wait={ack_wait}&tag={tag1}&tag={tag2}&tag_type={TYPE}
参数说明请参见表1。
名称 |
类型 |
是否必选 |
说明 |
取值范围 |
---|---|---|---|---|
project_id |
String |
是 |
项目ID。 |
N/A |
queue_id |
String |
是 |
指定的队列ID。 |
N/A |
consumer_group_id |
String |
是 |
消费组的ID。从查看指定队列的所有消费组的响应消息中获取消费组ID。 |
N/A |
max_msgs |
Integer |
否 |
获取可消费的消息的条数。 |
取值范围:1~10。 默认值:10 |
time_wait |
Integer |
否 |
设定队列可消费的消息为0时的读取消息等待时间。 如果在等待时间内有新的消息,则立即返回消费结果,如果等待时间内没有新的消息,则到等待时间后返回消费结果。 |
取值范围:1~60s 默认值:3s 说明:不带该参数或者配置为空,都默认为3s。 |
ack_wait |
Integer |
否 |
提交确认消费的超时时间,客户端需要在该时间内提交消费确认,如果超过指定时间,没有确认消费,系统会报消息确认超时或handler无效,则默认为消费失败。 |
取值范围:15~300s 默认值:30s 说明:不带该参数或者配置为空,都默认为30s。 |
tag |
String |
否 |
添加标签后可以按照Tag进行过滤,只消费匹配上标签的消息。 |
Tag的数量不超过3个。 每个Tag长度不超过64。 |
tag_type |
String |
否 |
多个消息标签的过滤类型。 |
取值范围:
默认值为:or。 |
示例
GET v1.0/b78a90ae2a134b4b8b2ba30acab4e23a/queues/075ae7da-6ce5-4966-940c-17c19fb5175e/groups/g-5ec247fd-d4a2-4d4f-9876-e4ff3280c461/messages?max_msgs=10&ack_wait=30&tag=tag1&tag=tag2&tag_type=or
请求消息
请求参数
无。
请求示例
无。
响应消息
响应参数
响应示例
[{ "message" : { "body" : { "foo" : "123=" }, "attributes": { "attribute1": "value1", "attribute2": "value2" } }, "tags":["tag1","tag2"], "handler" : "eyJjZyI6Im15X2pzb25fZ3JvdXAiLCJjaSI6InJlc3QtY29uc3VtZXItYzNlNThiNjEtYzA0NC00NGJkLTkxM2ItZDgzNjljNmJhYTQxIiwiY291bnQiOjAsIm9mZnNldCI6MCwicCI6MCwidCI6InRlc3QyIn0=" }, { "message" : { "body" : { "foo" : "123=" }, "attributes": { "attribute1": "value1", "attribute2": "value2" } }, "tags":["tag1","tag2"], "handler" : "eyJjZyI6Im15X2pzb25fZ3JvdXAiLCJjaSI6InJlc3QtY29uc3VtZXItYzNlNThiNjEtYzA0NC00NGJkLTkxM2ItZDgzNjljNmJhYTQxIiwiY291bnQiOjAsIm9mZnNldCI6MSwicCI6MCwidCI6InRlc3QyIn0=" } ]