基础篇-领域模型

1.消息(Message)

1.1 概述

消息是RocketMQ中的最小数据传输单元,由业务数据``+拓展属性两部分组成。

1.2 特点

  1. 只读:消息一旦生成,后续将无法对其内容做出任何更改,即消费端拿到的都是只读消费视图。(由于在历史版本3.x4.x版本中消息不可变性没有强约束,因此这些版本中你是可以修改消息的)
  2. 持久性:消费端接收到消息后会默认自动地对其进行持久化,以便后续进行故障排查。

1.3 模型关系

image.png
消息将有生产者投递到消息队列中,在消息队列中暂存,然后由消费者按照订阅关系从中获取并消费。

2.主题(Topic)

2.1 概述

主题是RocketMQ中的顶层容器,可以视为对消息的一级分类,用于存储同一类业务逻辑的消息。
主题是一个逻辑概念,实际上并不会真的存在主题这一运行实体。
主题内部由多个队列组成,对于主题的属性设置实际上都是通过操作底层的队列来完成的。

2.2 注意事项

消息的消息类型必须与主题中所规定的消息类型保持一致,每个主题只绑定一种类型的消息。

2.3 模型关系image.png

3.标签(Tag)

3.1 概述

标签可以视为子主题,即可以视为对消息的二级分类。往往可以将属于同一业务范畴但是各自有着不同目的的消息可以以相同Topic和不同Tag予以标识。

4.队列(MessageQueue)

4.1 概述

RocketMQ存储传递消息的容器,也是RocketMQ中的最小存储单元
一个Topic下可以设置多个水平MQ

4.2 特点

  1. 有序性:消息将按照FIFO的顺序写入MQ中。
  2. 流式操作:可在MQ中的指定位点处读取任意数量的消息。

5.生产者(Producer)

5.1 概述

生产者是RocketMQ中构建投递消息到MQ的运行实体。
生产者负责将业务数据封装为符合MQ要求的消息。
1个生产者可以向n个Topic投递消息。

5.2 模型关系

image.png

6.消费者(Consumer)

6.1 概述

消费者是RocketMQ中接收处理消息的运行实体。
消费者负责将MQ消息转换为业务可理解的信息以供后续的业务逻辑处理。

6.2 注意事项

消费者必须关联一个消费者组,因为消费者组将为消费者进行统一配置并管理其消费状态。

6.3 模型关系

image.png

7.消费者分组(ConsumerGroup)

7.1 概述

消费者分组可以视为RocketMQ中承载同一种消费行为的负载均衡分组
消费者分组是一个逻辑概念,并不是一个运行实体。

7.2 特点

  1. 每个消费者组都消费同一份完整的消息,消费者组之间的消息消费互不影响。(例如:现在消息队列中已经有1、2、3、4、5这五个消息,消费者组A消费了1、2消息,而消费者组B则消费了1、2(同样可以消费消息1、2)、3、4消息,即它们之间的消费互不影响,消费进度亦是如此)
  2. 同一个消费者组内的消费者之间是竞争关系,不能重复消费同一条消息。(例如:现在消息队列中已经有1、2、3、4、5这五个消息,现在消费者a1已经消费了消息1、2,那么消费者a2再来消费时,就只能消费3、4、5了,反正它就不能再去消费消息1、2了)

7.3 模型关系

image.png

8.消费位点(Offset)

8.1 概述

由于不同消费者组之间的消息消费是互不影响的,因此,当一个消费者组读取了MQ中的消息之后,不能将该消息立即从MQ中移除。如果移除,那其他消费者组就读不到了;如果不移除,那就无法确定当前消费者组已经消费到哪了。
因此,我们通过Offset来标识一个消费者组的当前消费位置,,每成功消费一条记录,Offset + 1。(MQ ≈ 数组Offset ≈ 数组下标)


参考文档

领域模型概述

  • 28
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程旧事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值