都说 RocketMQ 在 Topic 和分区多的场景下性能比卡夫卡要强,大家给出的原因是 commitLog 的组织方式是最核心的因素,rocketMQ 所有的消息都会顺序写入 commitLog,磁盘 IO 一直是顺序写入,而卡夫卡每个分区都有自己的消息持久化文件,分区多了之后相当于随机写。
但是我最近在看源码的时候发现,rocketmq 会为每个 consumerQueue 创建一个持久化文件用于保存消费进度,那么问题来了:在 Topic 多的时候 consumerQueue 也会随之增多,那么消费进度的持久化文件也会增多,不也相当于随机写么?为什么会和卡夫卡结果相反
再看看官网上关于 rocketmq 的描述,Topic 过多并不会太拖累 RocketMQ 的性能,想问问各位大佬我的理解是哪儿出了问题。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.