消息类型

最近更新时间: 2024-06-12 15:06:00

在消息队列中,根据消息的特性及使用场景,可以将消息作如下分类:

消息类型 消费顺序 性能 适用场景
普通消息 无顺序 最好 吞吐量巨大,且对生产和消费顺序无要求
局部顺序消息 同一分区下所有消息遵循先入先出(FIFO)规则 较好 吞吐量较大,同一分区内有序,不同分区内无序
全局顺序消息 同一 Topic 下所有消息遵循先入先出(FIFO)规则 一般 吞吐量一般,全局有序,单分区
死信消息 - - 无法正常消费的消息

普通消息

普通消息是一种基础的消息类型,由生产投递到指定 Topic 后,被订阅了该 Topic 的消费者所消费。普通消息的 Topic 中无顺序的概念,可以使用多个分区数来提升消息的生产和消费效率,在吞吐量巨大时其性能最好。

局部顺序消息

局部顺序消息相较于普通消息类型,多了一个局部有顺序的特性。即同一个分区下,其消费者在消费消息的时候,严格按照生产者投递到该分区的顺序进行消费。局部顺序消息在保证了一定顺序性的同时,保留了分区机制提升性能。但局部顺序消息不能保证不同分区之间的顺序。

全局顺序消息

全局顺序消息最大的特性就在于,严格保证消息是按照生产者投递的顺序来消费的。所以其使用的是单分区来处理消息,用户不可自定义分区数,相比前两种消息类型,这种类型消息的性能较低。

死信消息

死信消息是指无法被正常消费的消息。TDMQ 会在创建新的订阅(消费者确定了与某个 Topic 的订阅关系)时自动创建一个死信队列用于处理这种消息。