tencent cloud

文档反馈

基础概念

最后更新时间:2024-08-19 15:59:47

    消息分类

    在消息队列中,根据消息的特性及使用场景,可以将消息作如下分类:
    消息类型
    消费顺序
    性能
    适用场景
    普通消息
    无顺序
    最好
    吞吐量巨大,且对生产和消费顺序无要求
    局部顺序消息
    同一分区下所有消息遵循先入先出(FIFO)规则
    较好
    吞吐量较大,同一分区内有序,不同分区内无序
    全局顺序消息
    同一 Topic 下所有消息遵循先入先出(FIFO)规则
    一般
    吞吐量一般,全局有序,单分区
    死信消息
    -
    -
    无法正常消费的消息
    定时消息
    消息在发送至服务端后,推迟到某个时间点被消费
    存在1秒左右误差
    在某个指定时间点进行消息的消费
    延时消息
    消息在发送至服务端后,推迟一段时间后再被消费
    存在1秒左右误差
    在指定的时间间隔后进行消息消费

    普通消息

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

    局部顺序消息

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

    全局顺序消息

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

    死信消息

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

    定时消息

    消息在发送至服务端后,实际业务并不希望消费端马上收到这条消息,而是推迟到某个时间点被消费,这类消息统称为定时消息,可以看成是延时消息的一种特殊用法,其实现的最终效果与延时消息一致。

    延时消息

    消息在发送至服务端后,实际业务并不希望消费端马上收到这条消息,而是推迟一段时间后再被消费,这类消息统称为延时消息。

    重试队列

    重试队列是一种为了确保消息被正常消费而设计的队列。当某些消息第一次被消费者消费后,没有得到正常的回应,则会进入重试队列,当重试达到一定次数后,停止重试,投递到死信队列中。
    由于实际场景中,可能会存在的一些临时短暂的问题(如网络抖动、服务重启等)导致消息无法及时被处理,但短暂时间过后又恢复正常。这种场景下,重试队列的重试机制就可以很好解决此类问题。

    死信队列

    死信队列是一种特殊的消息队列,用于集中处理无法被正常消费的消息的队列。当消息在重试队列中达到一定重试次数后仍未能被正常消费,TDMQ Pulsar 版会判定这条消息在当前情况下无法被消费,将其投递至死信队列。
    实际场景中,消息可能会由于持续一段时间的服务宕机,网络断连而无法被消费。这种场景下,消息不会被立刻丢弃,死信队列会对这种消息进行较为长期的持久化,用户可以在找到对应解决方案后,创建消费者订阅死信队列。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持