Skip to content

RocketMQ学习笔记

简介

RocketMQ支持多种消息模式,包括同步、异步、单向和定时消息。同时,RocketMQ还具有高度可靠性、低延迟、高吞吐量、分布式部署等优点,可以在众多领域中广泛应用,比如电商、金融、物流等。跟其它中间件相比,RocketMQ 的特点是纯JAVA实现,是一套提供了消息生产,存储,消费全过程API的软件系统。

官网地址:[https://rocketmq.apache.org/]

领域模型

基本概念

消息(Message)

消息是系统传输信息的载体,生产和消费的最小单位,每条消息必须属于一个主题

  • Normal:普通消息
  • FIFO:顺序消息
  • Delay:定时/延时消息
  • Transaction:事务消息

主题(Topic)

消息传输和存储的分组容器,每个主题包含若干条消息,每条消息只能属于一个主题,是RocketMQ进行消息订阅的基本单位。 一个生产者可以同时发送多种Topic的消息;而一个消费者只对某种特定的Topic感兴趣,即只可以订阅和消费一种Topic的消息。

队列(Queue)

消息传输和存储的实际单元容器。 一个Topic中可以包含多个Queue,每个Queue中存放的就是该Topic的消息。 一个Topic的Queue也被称为一个Topic中消息的分区(Partition)。 一个Topic的Queue中的消息只能被一个消费者组中的一个消费者消费。

标签(Tag)

标签为消息设置的标签,用于同一主题下区分不同类型的消息。来自同一业务单元的消息,可以根据不同业务目的在同一主题下设置不同标签。 Topic是消息的一级分类,Tag是消息的二级分类。Topic相当于货物,Tag相当于上海山东等地区。

生产者(Producer)

消息生产者,负责生产消息。Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟。 例如:用户提交的请求写入到MQ的过程,就是消息生产的过程,在这里用户就是生产者 。

消费者(Consumer)

消息消费者,负责消费消息。一个消息消费者会从Broker服务器中获取到消息,并对消息进行相关业务处理。 例如:系统从MQ中读取到请求,并对请求进行处理的过程就是消息消费的过程,在这里系统就是消费者。

消费者分组(ConsumerGroup)

在消费者分组中,统一定义以下消费行为,同一分组下的多个消费者将按照分组内统一的消费行为和负载均衡策略消费消息。类似于一个班级 班级中的学生为消费者 上课的行为可以理解为消费 在同一个班级的学生 上课时间都是相同的

订阅关系(Subscription)

消费者(Consumer)与主题(Topic)之间的关系,用来定义消费者对消息的订阅规则。简单的讲就是 消费者需要接受的消息主题

最近更新