消息类型
最近更新时间: 2024-10-17 17:10:00
在消息队列中,根据消息的特性及使用场景,可以将消息作如下分类:
消息类型 | 消费顺序 | 性能 | 适用场景 |
---|---|---|---|
普通消息 | 无顺序 | 最好 | 吞吐量巨大,且对生产和消费顺序无要求 |
局部顺序消息 | 同一分区下所有消息遵循先入先出(FIFO)规则 | 较好 | 吞吐量较大,同一分区内有序,不同分区内无序 |
全局顺序消息 | 同一 Topic 下所有消息遵循先入先出(FIFO)规则 | 一般 | 吞吐量一般,全局有序,单分区 |
死信消息 | - | - | 无法正常消费的消息 |
普通消息
普通消息是一种基础的消息类型,由生产投递到指定 Topic 后,被订阅了该 Topic 的消费者所消费。普通消息的 Topic 中无顺序的概念,可以使用多个分区数来提升消息的生产和消费效率,在吞吐量巨大时其性能最好。
局部顺序消息
局部顺序消息相较于普通消息类型,多了一个局部有顺序的特性。即同一个分区下,其消费者在消费消息的时候,严格按照生产者投递到该分区的顺序进行消费。局部顺序消息在保证了一定顺序性的同时,保留了分区机制提升性能。但局部顺序消息不能保证不同分区之间的顺序。
全局顺序消息
全局顺序消息最大的特性就在于,严格保证消息是按照生产者投递的顺序来消费的。所以其使用的是单分区来处理消息,用户不可自定义分区数,相比前两种消息类型,这种类型消息的性能较低。
死信消息
死信消息是指无法被正常消费的消息。TDMQ 会在创建新的订阅(消费者确定了与某个 Topic 的订阅关系)时自动创建一个死信队列用于处理这种消息。