[南京—后端—海鹏] 为什么说rocketmq 是顺序写,而kafka是随机写?kafka主题数超过100性能下降很大是怎么回事
来源:云原生后端社区https://www.yuque.com/server_mind/answer
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
[南京—后端—海鹏] 网上的解释:
RocketMq 和 Kafka 的性能基线就不在一个水准上,Kafka 利用顺序读写已经把一个 MQ 的性能压榨到比较极限的水准了,超高的性能也带来了一些问题,每一个 topic 在硬盘上用一个 logfile 表示,通过顺序读写可以使性能非常高,但当多个 topic 的多个 partition 分布在同一台机器上时,原本的顺序读写就变为随机读写,partition 越多,随机就越严重,apache pulsar 解决了这个问题是使用 bookkeeper 做 store,这样做同时也降低了性能基线,业务需要很高的性能时,用 Kafka 没错,堆机器就行了,没钱堆机器时也不需要那么高的性能。
[上海-大数据-酸菜鱼] Kafka本身是顺序写, FileChannel对应一个磁盘位置顺序写, 但是要写的log多了后, 其实要在磁盘上写入的位置就很多了, 性能会不如随机写。
来源:云原生后端社区https://www.yuque.com/server_mind/answer