消息类型
URocketMQ支持普通、分区顺序、全局顺序、事务、定时等多种消息类型,针对每种类型消息生产/消费代码可能有所差异,建议不要混用。
普通消息
通用无特殊设置消息,性能最高。
分区顺序消息
利用用户提供的 Sharding Key 进行分区,同一个分区内的消息按照严格的 FIFO顺序进行发布和消费。
全局顺序消息
所有消息保证FIFO生产和消费,实际为一个队列,性能最低。
事务消息
事务消息提供类似 X/Open XA 的分布事务功能,要么同时成功,要么同时失败,通过事务消息能达到分布式事务的最终一致。
定时/延时消息
在开源RocketMQ支持固定梯度延时消息同时,URocketMQ自研支持任意秒级定时/延时消息。
固定梯度延迟消息
开源RocketMQ支持固定梯度的延迟消息,消息发送到之后,不会立即被消费,等待特定时间投递给真正的topic,默认配置“1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h” 18个级别,每个级别对应不同的延时时间,比如1对应1s,5对应1m,具体如下:
延迟等级 | 延迟时间 |
---|---|
1 | 1s |
2 | 5s |
3 | 10s |
4 | 30s |
5 | 1m |
6 | 2m |
7 | 3m |
8 | 4m |
9 | 5m |
10 | 6m |
11 | 7m |
12 | 8m |
13 | 9m |
14 | 10m |
15 | 20m |
16 | 30m |
17 | 1h |
18 | 2h |
任意秒级延迟消息
URocketMQ自研支持任意秒级延迟消息,用户可自定义定时或者延迟至未来任意一秒发送消息。
说明:
- 定时消息的精度会有1s~2s的延迟误差。
- 默认支持2天以内自定义秒级延迟消息。
- 同时设置固定梯度延迟与自定义延迟属性,仅生效固定梯度延迟。
- 延迟时间超过支持范围(如默认2天),则以最大支持时间为准。
- 实际时间戳以服务端时间为准,如果定时时间戳小于当前服务器时间戳则立即发送。
- 2021年11月15日之前创建的实例会按批次进行升级以支持该特性,如实例未支持可联系客户经理进行实例升级。