对比项 | Lite Topic(轻量消息) | 普通 Topic |
消息模型 | 两级模型:Topic + Lite Topic,二级 Lite Topic 默认自动创建,单实例可达百万级 | 单层 Topic,需预先创建(除非开启自动创建开关),单实例支持数千个 Topic |
生命周期管理 | 全自动管理。基于 TTL 自动创建与删除,TTL 内无新消息写入即自动清理 | 需手动管理,仅部分高级版本支持 Topic 级别消息保留时间设置 |
顺序性 | 每个 Lite Topic 底层一个队列,生产、消费、存储均天然有序 | 默认多队列,需通过 Message Group + 分区顺序消费机制保障顺序性 |
订阅管理 | 弱化 Group 限制。同一 Group 下不同消费者可订阅不同 Lite Topic,支持动态增删订阅 | 同一 Group 下消费者订阅关系需保持一致,无动态订阅能力 |
消费模式 | 支持共享消费(Shared)与排他消费(Exclusive)两种模式,适配会话保持场景 | 仅共享消费模式,Consumer Group 下消费者均衡消费 |
可观测性 | 支持消息轨迹,Lite Topic 维度独立指标,可按 Topic 聚合监控 | 支持消息轨迹与堆积、生产/消费速率等基础指标 |

参数 | 是否必选 | 说明 |
Topic 名称 | 是 | 填写 Topic 名称(创建后不可修改),3-100个字符,只能包含字母、数字、“%”、“-”及“_” |
类型 | 是 | 选择“轻量消息”类型,该 Topic 即作为 Lite Topic 上一级的 Topic。后续业务程序向其发送消息时,Broker 会根据客户端指定的 Lite Topic 名称自动创建二级 Lite Topic,无需在控制台手动创建。 |
标签 | 否 | |
Lite Topic 自动删除 | 否 | 打开自动删除开关后,如果某个 Lite Topic 在过期时间内没有新消息写入,服务端将自动删除该 LiteTopic,未消费的消息也随之过期。 |
Lite Topic 过期时间 | 否 | 范围 30分钟至12小时 |
消息保留时间 | 是 | 消息持久化后的保留时间,过期不论是否消费均删除。仅 5.x 专业版以及铂金版集群支持在 Topic 维度调整消息保留时间,5.x 体验版和基础版集群和4.x 集群支持在集群维度进行调整。 |
Topic 说明 | 否 | 填写 Topic 的说明信息,最长128个字符。 |
参数 | 说明 |
当前集群 | Group 所属的集群,不支持修改。 |
Group 名称 | 填写 Group 名称(创建后不可修改),需符合命名规则:3-100个字符,只能包含字母、数字、“%”、“-”及“_”。 |
标签 | |
消费模式 | 选择 Lite Topic 消费。因为在轻量消息的消费场景下,Group 的作用和其他消息类型不一样,因此在创建 Group 时,消费 Lite Topic 的 Group 需要和普通 Group 区分。 |
订阅的 Topic | 选择该 Group 订阅的 Topic,为了便于订阅关系的管理,当前仅支持定义一个 Topic(Lite Topic 上层的 Topic)。 |
投递顺序性 | Lite Topic 内消息消费严格有序,默认展示顺序投递。 |
开启消费 | 关闭后 Group 下的所有消费会暂停,重新开启可继续消费。可用于系统运维,对消费者组进行流控与故障隔离,以实现集群级别的保护与平滑操作。 |
重试策略 | Lite Topic 顺序投递仅支持“固定间隔”,即消息将按照设置的间隔进行重试 |
固定重试间隔 | Lite Topic 内的消息默认重试间隔为 1 秒,避免实际发生重试时,间隔时间过长后引起后续消息的大量积压。 |
Group 说明 | 填写 Group 说明信息,最长 128 个字符。 |

final String topic = "{Topic_Name}"; // 您在控制台创建的【轻量消息】类型的 Topic 名称final String accessKey = "{Access_Key}"; // 您在控制台创建的角色的 AccessKeyfinal String secretKey = "{Secret_Key}"; // 您在控制台创建的角色的 SecretKeyfinal String endpoints = "{EndPoints}"; // 控制台展示的集群接入点final SessionCredentialsProvider sessionCredentialsProvider = new StaticSessionCredentialsProvider(accessKey, secretKey);final ClientConfiguration clientConfiguration = ClientConfiguration.newBuilder().setEndpoints(endpoints).setCredentialProvider(sessionCredentialsProvider).enableSsl(false).build();final Producer producer = provider.newProducerBuilder().setClientConfiguration(clientConfiguration).setTopics(topic).setMaxAttempts(3).build();final byte[] body = "This is a lite message of TDMQ RocketMQ".getBytes(StandardCharsets.UTF_8);final Message message = provider.newMessageBuilder().setTopic(topic).setLiteTopic("{Lite_Topic_Name}") // 首次发送时会自动创建.setBody(body).build();try {final SendReceipt sendReceipt = producer.send(message);log.info("Sent lite message successfully, messageId {}", sendReceipt.getMessageId());} catch (Throwable t) {log.error("Failed to send lite message {}, please try again", message, t);}// 您需要在业务进程退出前(或者不再发送消息后)关闭 Producerproducer.close();
final String topic = "{Topic_Name}"; // 您在控制台创建的【轻量消息】类型的主题名称final String consumerGroup = "{Consumer_Group_Name}"; // 您在控制台创建的消费组名称,注意:需要绑定正确的【轻量消息】类型主题final String accessKey = "{Access_Key}"; // 您在控制台创建的角色的 AccessKeyfinal String secretKey = "{Secret_Key}"; // 您在控制台创建的角色的 SecretKeyfinal String endpoints = "{EndPoints}"; // 控制台展示的集群接入点final SessionCredentialsProvider sessionCredentialsProvider = new StaticSessionCredentialsProvider(accessKey, secretKey);final ClientConfiguration clientConfiguration = ClientConfiguration.newBuilder().setEndpoints(endpoints).setCredentialProvider(sessionCredentialsProvider).enableSsl(false).build();final LitePushConsumer litePushConsumer = provider.newLitePushConsumerBuilder().setClientConfiguration(clientConfiguration).setConsumerGroup(consumerGroup).bindTopic(topic).setMessageListener(messageView -> {// 业务消费代码log.info("Consumed messageId {}", messageView.getMessageId());return ConsumeResult.SUCCESS;}).build();try {litePushConsumer.subscribeLite("{Lite_Topic_Name}");// 您可以继续订阅更多的 Lite Topic} catch (Throwable t) {log.error("Failed to subscribe lite topics, please try again", t);}// 您需要在业务进程退出前关闭 ConsumerlitePushConsumer.close();
文档反馈