更新时间:2022-12-19 GMT+08:00
什么是分布式消息服务RocketMQ版
分布式消息服务RocketMQ版是一个低延迟、弹性高可靠、高吞吐、动态扩展、便捷多样的消息中间件服务。
分布式消息服务RocketMQ版具有如下特点:
- 兼容开源RocketMQ客户端。
- 提供顺序、延迟、定时、重投、死信、事务消息等功能,更好的适配电商、金融等多样的业务场景。
- 提供消息追踪、消息溯源、链路诊断、死信导出、监控告警等能力,帮助您全方面的了解服务状况,保证业务正常运行。
产品架构
图1 产品架构示意图
示意图说明:
- Broker:负责接收和存储Producer发送的消息,或者转发消息到Consumer。一个Broker由一个主节点和两个备节点组成。
- NameServer:负责接收和存储Broker中的元数据。
- Producer:从NameServer获取元数据,然后将消息发送到Broker。
- Consumer:从NameServer获取元数据,然后从Broker拉取消息。
支持的消息类型
分布式消息服务RocketMQ版支持4种消息类型。
- 普通消息:没有特殊功能的消息,区别于延迟消息、顺序消息和事务消息。
- 延迟消息/定时消息:生产者生产消息到分布式消息服务RocketMQ版后,消息不会立即被消费,而是延迟到特定时间后才会发送给消费者进行消费。
- 顺序消息:消费者按照消息发送的顺序来消费消息。
- 事务消息:提供类似X/Open XA的分布事务功能,通过事务消息能达到分布式事务的最终一致。
支持的高级特性
分布式消息服务RocketMQ版支持4种高级特性。
- 消息过滤:消费者根据分布式消息服务RocketMQ版设置的标签对已订阅Topic中的消息进行过滤,达到只消费需要的消息的目的。
- 消息重试:消费者消费某条消息失败后,分布式消息服务RocketMQ版根据重试机制将消息重新发送给消费者进行消费。如果重试次数到达设定的最大值时,消息尚未被成功消费,此消息将被发送到死信队列。
分布式消息服务RocketMQ版的重试机制如表1所示。
表1 消息重试机制 消费类型
重试时间间隔
最大重试次数
顺序消费
通过suspendTimeMillis设置重试时间间隔。
默认值为1000ms,即1s。
通过消费者的setMaxReconsumeTimes函数配置最大重试次数。若未设置参数值,默认为无限重试。
普通消费
重试时间间隔根据重试次数阶梯变化,如表2所示。
创建消费组时设置。
取值范围:1-16。
- 延时消息:生产者生产消息到分布式消息服务RocketMQ版后,消息不会立即被消费,而是延迟固定时间后才会发送给消费者进行消费。生产者可以指定18个延时等级,每个延时等级对应的时间如表3所示。
- 定时消息:生产者生产消息到分布式消息服务RocketMQ版后,消息不会立即被消费,而是延迟到设定的时间点后才会发送给消费者进行消费。分布式消息服务RocketMQ版支持任意时间的定时消息,最大推迟时间可达到1年。同时也支持定时消息的取消。
2022年3月30日及以后购买的实例支持定时消息功能,在此之前购买的实例不支持此功能。