1.RocketMq名词解释( 四 )


消息轨迹的数据包含:
1.8 消息堆积
已经将消息发送到消息队列的服务端,但由于消费能力有限,未能在短时间内将所有消息正确消费掉,此时在消息队列的服务端保存着未被消费的消息,该状态即消息堆积 。要想跳过堆积消息,可以设置重置消费点
1.9 死信队列
死信队列用于处理无法被正常消费的消息 。当一条消息初次消费失败,消息队列会自动进行消息重试;达到最大重试次数后,若消费依然失败,则表明消费者在正常情况下无法正确地消费该消息,此时,消息队列不会立刻将消息丢弃,而是将其发送到该消费者对应的特殊队列中 。
消息队列将这种正常情况下无法被消费的消息称为死信消息(Dead- ),将存储死信消息的特殊队列称为死信队列(Dead- Queue) 。
死信消息具有以下特性:
不会再被消费者正常消费 。有效期与正常消息相同,均为 3 天,3 天后会被自动删除 。因此,请在死信产生后的 3 天内及时处理
1.10 重试机制
1.10.1 生产端重试
如果由于网络抖动等原因,程序向发送消息时没有成功,即发送端没有收到的ACK,导致最终无法消费消息,此时会自动进行重试 。
1.10.2 消费端重试
【1.RocketMq名词解释】异常重试:由于端逻辑出现了异常,导致返回了状态,那么就会在一段时间后尝试重试 。超时重试:如果端处理时间过长,或者由于某些原因线程挂起,导致迟迟没有返回消费状态,就会认为消费超时,此时会发起超时重试 。