消息回溯(rewind)接口为Queue属性,修改后,所有消费者都遵循最新的rewind时间轴进行消费。 1、回溯的时间点,只允许指定消息已删除,但处于消息可回溯周期之内的时间点。 2、rewind支持修改,也只能重新选择,消息可回溯区间内的时间点。 3、指定后,所有消费者,将从指定的时间点(在可回溯范围内),开始消费,一直消费到当前时间。 4、当指定了早于可回溯范围的时间点进行回溯时,会报错,接口会自动指定『最近的可回溯时间点』。
死信队列称为Dead letter Exchange。主要满足2种场景下的诉求: 1、便于定位问题:如可设定,某条消息,被多次消费后,却未被删除。这种情况下往往是该消息未被正确的消费。可能存在问题需要回溯定位。 可设置最大消费次数。超额后,该消息会被淘汰到指定的死信队列。便于后续问题发现。 2、优先级队列:还可以用作优先级处理,如摩拜单车等o2o客户,对访问时延、实时性要求非常高。如单车开锁逻辑,当MQ中堆积了1亿 条消息时,会优先处理最新生产的部分消息,老的消息淘汰到死信队列,当消费者有能力时。再处理 (往往老的消息,比如用户扫码开车 ,在等待时已流失了,老的消息的价值会偏小。建议优先处理最新的消息)。
事务消息。主要满足以下场景的诉求:由于传统的处理方式无法解决消息生成者本地事务处理成功与消息发送成功两者的一致性问题,因此事务消息就诞生了,它实现了消息生成 者本地事务与消息发送的原子性,保证了消息生成者本地事务处理成功与消息发送成功的最终一致性问题。用户实现类似 X/Open XA 的分布事务功能,通过CMQ事务消息能达到分布式事务的最终一致。