rocketmq存储模型学习

写(发送)消息

broker写消息处理器:SendMessageProcessor
rocketmq为每个topic维护M个broker*N(默认值:16)个队列,其写入的并发性扩展性很强大
1

读(消费)消息

拉取消息处理器(rocketmq消息框架的设计就是采用的:拉模式):PullMessageProcessor
消费消息下标管理处理器:ConsumerManageProcessor
基于消费下标(按照消费模式配置计算出下次消费的下标)提交消费者下标并存储:org.apache.rocketmq.broker.offset.ConsumerOffsetManager#commitOffset(java.lang.String, java.lang.String, java.lang.String, int, long)
2

存储模型

写扩散

3

读扩散

4

总结

读扩散

优点

  1. 写入扩展性高
  2. 存储成本低

缺点

  1. 订阅者-消息状态维护成本高
  2. 读取扩展性差

适用场景:重写轻读

写扩散

优点

  1. 订阅者-消息状态维护成本低
  2. 读取扩展性高

缺点

  1. 写入扩展性差
  2. 存储成本高

使用场景:重读轻写

rocketmq

rocketmq存储模型选型:读扩散。为了弥补消费消息扩展性差的问题,增加了多个broker节点,突破单机性能瓶颈。同样也增加订阅者-消息状态的维护成本(内存、存储、网络成本与broker数量成正比)。为了维护订阅者-消息状态,每个broker都维护了一个主题-消费者下标管理器

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值