RockMQ基本概念

1、消息(Message)

消息系统所传输信息的物理载体,生产和消费数据的最小单位,每条消息必须属于一个主题(topic)

2、主题(Topic)

1、一类消息的集合,每个主题包含若干消息,每条消息只能属于一个主题,是RockMQ进行消息订阅的基本单位。

2、一个生产者可以同时发送多种Topic的消息,而一个消费者只对某种特定的Topic感兴趣,即只可订阅和消费一种Topic的消息

3、标签(Tag)

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

4、队列(Queue)

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

1)一个Topic的Queue中的消息,只能由一个消费者组中的一个消费者消费

5、消息标志(MessageId/Key)

RockMQ中每个消息拥有唯一的MessageId,且可以携带具有业务标志的Key,以便对消息的查询。不过需要注意的是,MessageId有两个:在生产者send()消息时会自动生成一个MessageId(msgId)。当消息到达Broker后,Broker也会自动生成一个MessageId(OffsetMsgId)。msgId、OffsetMsgId与key都称为消息标准。

  1. msgId: 由producer端生成, 其生成规则为:
    producerIp +进程pid + MessageClientIDSetter类的ClassLoader的hashcode +当前时间+ Automi CInteger自增计数器
  2. offsetMsgId: 由broker端生成, 其生成规则为: brokerIp +物理分区的offset
  3. key:由用户指定的业务相关的唯一标识

标题:RockMQ基本概念
作者:admin
地址:http://www.mjdg.store/articles/2025/01/22/1737523910833.html

    评论
    0 评论
avatar

取消