深度剖析: RocketMQ 在存储架构上的极致追求

本文深入探讨RocketMQ为实现高效读写性能在存储架构上的设计,包括存储结构选型对比,RocketMQ选择单个文件存储的原因,如何平衡读性能,以及消息消费的索引构建和位点记录,揭示了RocketMQ如何优化存储以满足高效率需求。
摘要由CSDN通过智能技术生成

MQ作为一款中间件,就需要承载全公司所有业务系统使用需求,并高效稳定运行。因此,MQ对本身运行效率有着非常苛刻的诉求。

为了实现高效率,其实需要很多方面一起配合来完成。比如存储方式、内存使用、负载均衡等等。

本文就RocketMQ为了实现高效的读写速率在存储架构上所做的努力,进行下阐述。

Part one / 存储结构选型对比

为了更方便的进行数据读写,消息在磁盘底层的文件目录设计,都需要关注和解决什么问题呢:

• 首先,最基本的,消息原始记录的写入和存储,且速率要快。 • 其次,要可以区分 topic  ,特别是允许消费者按 topic 进行接收。 • 再次,分布式集群下的多消费者负载均衡。

那么问题来了,消息文件该怎么设计呢?

如果按 topic 来拆分文件进行存储,是否可以?

• 缺点:生产者写入时选择对应的文件来写入。当数据量逐渐增大之后,定位查询文件地址,对磁盘的寻址所带来的性能损耗,将不再可以忽略。 • 优点:在消费时,可以直接加载相关文件进行读取,不会产生随机寻址。

如果用一整个文件来存消息呢?

• 优点:所有的 topic 都被写入一个文件中,这样,写入时,只要将消息按到达顺序序追加到文件尾部即可,很容易实现顺序写入。 • 缺点:消费时,需要根据辅助信息来在文件中定位消息,会产生随机读,损耗性能。

因此,不管是按 topic 拆开多文件存储&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值