RocketMQ

RocketMQ是一款由阿里巴巴开源的分布式消息中间件,它具有高延迟、高吞吐量、高可用性和高可靠性的特点,适用于构建具有海量消息堆积和异步解耦功能的应用系统。

基本概念

Message

消息是指消息系统中所传输的物理载体,生产和消费数据的最基本的单位,每个消息必须属于一个主题。

Topic

Topic表示一类消息的集合,每个主题包含若干条消息,每条消息只可以属于一个Topic,是RocketMQ进行消息订阅的基本单位。一个生产者可以生产消息到多个Topic上,但是一个消费者同时只能订阅一个Topic,消费单个主题的消息,如果要消费多个Topic中的消息,需要创建多个消费者。

Tag

Tag,消息的标签,用于同一主题下区分不同类型的消息。来自同一业务单元的消息,可以根据不同的业务目的在同一主题下设置不同的标签。标签能够有效的保持代码的清晰性以及连贯性,并优化RocketMQ的查询系统。消费者可以根据Tag实现不同子主题的不同消费逻辑,实现更好的扩展性。

Queue

存储消息的物理实体,一个Topic中可以包含多个Queue。每个Queue中存放的就是这个Topic中的消息。一个TopicQueue也被称为一个Topic的消息分区(Partition,Kafka就叫这个)。

使用分区不仅可以让消息队列分片存储,更可以实现并发消费,增加消费者的消费速度。 一个Topic中的消息只能被一个消费者,或者一组消费者消费,并且一条消息被消费者组消费的时候,只能被消费者组中的一个消费者消费。

消息标识 MessageId/Key

RocketMQ中的每个消息拥有唯一的MessageId,且可以携带具有业务标识的key,以方便查询消息。

最后更新于