一、基本概念
1、消息(Message)
消息系统所传输信息的物理载体,生产和消费数据的最小单位,每条消息必须属于一个主题。
2、主题(Topic)
表示一类消息的集合,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ进行消息订阅的基本单位。
一个生产者可以同时发送多种Topic的消息,而一个消费者只对某种特定到底Topic感兴趣。
3、标签(Tag)
为消息设置的标签,同于同一主题下区分不同类型的消息,来自同一业务单元的消息,可以根据不同业务目的在同一主题下设置不同标签。标签能够有效的保持代码的清晰度和连贯性,并优化RocketMQ提供的查询系统,消费者可以根据Tag实现对不同子主题的不同消费逻辑,实现更好的扩展性。
4、队列(Queue)
存储消息的物理实体,一个Topic中可以包含多个Queue,每个Queue中存放的就是该Topic的消息,一个Topic的Queue也被称为一个Topic中的消息分区。
一个Topic的Queue中的消息只能被一个消费者组中的一个消费者消费。
5、消息标识(MessageId)
每个消息拥有唯一的MesssageId,且可以携带具有业务标识的Key,以方便对消息的查询,不过注意,MessageId有两个,在生产者Send()消息时会自动生产一个Id,当消息到达Broker后,Broker也会自动生成一个Id。