队列管理

最近更新时间:2022-06-09 15:32:27

操作场景

本文介绍如何在 TDMQ CMQ 版控制台创建队列服务和向消息接受侧发送消息的操作步骤。

操作步骤

创建队列

  1. 登录 TDMQ 控制台
  2. 在左侧导航栏选择队列服务,选择好地域,单击新建,配置队列服务相关属性值。
    属性 说明 取值
    队列名称 QueueName,为队列的名称。 作为资源的唯一标识,调用 API 接口进行操作时,以 Queue name 为准,创建成功后无法修改。不区分大小写,相同字母即会判定为同名,并不能以 -retry 和 -dlq 结尾。
    资源标签 选填,标签可以帮助您从各种维度方便地对 TDMQ CMQ 版资源进行分类管理,具体使用方法可参见 标签管理 -
    消息生命周期 队列的 msgRetentionSeconds 属性,在新版CMQ中此参数消息可回溯时间合并为同一参数,需要开启回溯功能生效,消息在本队列中的保留时间,从发送到该队列开始经过此参数指定的时间后,该消息会变得可被删除(不一定会被及时清除)。 单位:秒,有效值范围:60秒 - 1296000秒,即1分钟 - 15天。
    消息最长未确认时间 范围30秒到12小时,如果消费客户端在获取到消息后超过此时间仍未进行消息的确认,则服务端会自动确认该消息。 单位:秒,有效值范围:60秒 - 43200秒,即1分钟 - 12小时。
    消息接收长轮询等待时间 PollingWaitSeconds,长轮询等待时,一个消息消费请求只会在取到有效消息或长轮询超时时才返回响应,类似于 Ajax 请求的长轮询。 单位:秒。有效值范围:0秒 - 30秒。
    取出消息隐藏时长 该项为队列的 VisibilityTimeout 属性,每条 Message 都有个默认的VisibilityTimeout,Worker 在接收到消息后,timeout 就开始计时了。如果 Worker 在 timeout 时间内没能处理完 Message,那么消息就有可能被其他 Worker 接收到并处理。 单位:秒。有效值范围:1秒 - 43200秒,即1秒 - 12小时。
    死信队列 死信队列用于处理无法被正常消费的消息。达到最大重试次数后,若消费依然失败,则表明消费者在正常情况下无法正确地消费该消息,此时,MQ 不会立刻将消息丢弃,而是将其发送到该消费者对应的特殊队列中。 -
    堆积消息数量上限 该限制为单个队列,最大消息堆积个数(未被删除)。 单个队列的堆积消息上限为1亿条,最小值为1百万条。如需提升额度,请联系技术支持。
    消息回溯 若未开启“消息回溯”能力,则消费者已消费,且确认删除的消息,会立即删除,开启该功能时,须指定回溯的“可回溯周期”。 “可回溯周期”的范围,必须小于等于消息的生命周期。建议将回溯周期与消息的生命周期设置为相同的值,便于定位问题。
    可回溯时间范围 当开启消息回溯后可配置时间范围项。配置之后在该时间内,只要消息存储未达到上限,均会对消息进行持久化保留 时间范围:1秒 - 15天,最大可回溯时间点 = 当前时间 - 设置的可回溯时间范围。消息生产时间在这个值之前的不可回溯。
    可回溯存储空间 当开启消息回溯后可配置存储空间项,一般用于节省存储成本而设置,可回溯的消息达到指定存储大小后,会根据生产时间从老的开始删除 存储空间范围:1GB - 10GB,最大可回溯时间点 = 当前时间 - 设置的可回溯时间范围。消息生产时间在这个值之前的不可回溯。
    说明:

    为引导用户更合理地使用 TDMQ CMQ 版,我们已于2022年4月12日做出以下调整(该调整不影响您正在进行中的生产消费行为):

    • 队列属性中取消消息生命周期的限制,对于新创建的队列,原消息生命周期的时间长度和可回溯时间长度保持一致,意义均为无论该消息是否被客户端确认删除,该消息都将持续保存,以用于后期在意外情况下进行回溯
    • 新增对未确认消息的最大时长限制,如果消费客户端在获取到消息后超过此时间仍未进行消息的确认,则服务端会自动确认该消息
  3. 单击提交,在队列服务列表可以看到创建好的队列服务。
    说明:

    • 可见消息数:普通消息(非延时消息)被发送到普通消息队列时, 初始状态为可见。被取走后且超过隐藏时长时间后消息还未被删除,消息会重新变成可见状态。此处显示的数据刷新会有30s到60s延迟。
    • 不可见消息数:当可见消息被取走后在隐藏时长的时间内状态为不可见。此处显示的数据刷新会有30s到60s延迟。

    关于 TDMQ CMQ 版可见消息数和不可见消息数定义请参见 消息生命周期

发送消息

  1. 登录 TDMQ CMQ 版控制台
  2. 在左侧导航栏选择队列服务,选择好地域后,单击目标队列操作列的发送消息
  3. 填写消息内容,单击发送,向消息接收侧发送测试消息。
    说明:

    消息内容:填写发送的内容,至少1Byte,最大长度受限于设置的队列消息最大长度属性。

目录