功能特性

功能特性 #

顺序消息 #

顺序消息是CatMQ最所支持的一个消息功能特性,所谓的顺序消息就是一个FIFO模型的消息队列,先发送的消息优先消费。CatMQ可以保证一个ConsumerGroup中的消息是按照顺序消费,如果有消息消费失败,会尝试重试消费失败的消息,如果失败重试达到指定次数,才会消费下一条消息。

延时消息 #

延时消息是主要为了满足一些延迟消费的场景,延时消息的设置单位为秒。不同的消费者组订阅相同的主题的时候,可以为这些消费者组设置不同的延时时间。

消费者和队列的负载均衡 #

CatMQ允许消费者和实际消息的队列动态的增加或者减少,以应对消费堆积过多或者是多个消费者中有消费者意外宕机的情况。CatMQ会动态的重新匹配消费者和队列的匹配关系。注意,如果当前的消费者的数量大于等于队列的数量,此时再单纯的添加消费者的数量并不会触发重平衡。

支持一个队列被多个消费者组订阅 #

CatMQ支持一个队列被多个消费者组同时订阅,并且消费者组之间对队列的消费互相不影响。比如 A,B 两个消费者组同时订阅了队列 C,不论 B 消费者组发生了什么变更,都不会影响 A 消费者组的消费状态。

消费进度调整 #

CatMQ支持实时动态调整消费者组的消费进度,调整的消费者组的当前消费进度并且实时生效。所有的消费者都会从新的消费偏移开始消费。当然新的消费偏移点必须小于当前的消息队列的最大消费ID, 如果强行设置新的消费位移点大于消息队列的最大ID,会被自动重置为最大ID。

消息的存储和定时清理 #

CatMQ采用的数据库去持久化消息,DB结构的设计可以参考/doc/db 里面的DDL。为了防止冗余数据过多导致的数据溢出,队列在创建的时候,会默认设置一个消息过期时间,到达消息过期时间以后,消息会自动被清除。

自助式运维治理 #

CatMQ拥有一个运维自助治理的管理后台,在这个后台上面可以进行自助式创建和管理所有的Topic,ConsumerGroup, ComsumerOffset的创建和关系管理。支持队列的自助式创建和扩容,支持自助管理ConsumerGroup和Queue的关系管理。