2023-07-14:讲一讲Kafka与RocketMQ中存储设计的异同?

2023-07-14:讲一讲Kafka与RocketMQ中存储设计的异同?

答案2023-07-14:

在Kafka中,文件的布局采用了Topic/Partition的方式,每个分区对应一个物理文件夹,且在分区文件级别上实现了顺序写入。然而,当一个Kafka集群拥有大量的主题和每个主题拥有数百个分区时,在高并发写入消息的情况下,IO操作会变得零散。这是因为消息的落盘策略导致磁盘IO的竞争变得激烈,成为系统性能的瓶颈。实际上,由于IO操作变得随机,所以在消息写入时,Kafka的IO性能会随着主题和分区数量的增加而先上升,然后下降。

RocketMQ追求在消息写入时实现极致的顺序写。所有的消息都会按顺序写入commitlog文件,不论主题或分区的数量增加,都不会影响其顺序性。

在消息的发送和消费共存的场景中,随着Topic数量的增加,Kafka的吞吐量会急剧下降,而RocketMQ则能够保持较为稳定的性能表现。因此,Kafka更适用于少量Topic和消费端的业务场景,而RocketMQ则更适合于涉及多个Topic和多个消费端的业务场景。

相关推荐
Kiyra5 小时前
WebSocket vs HTTP:为什么 IM 系统选择长连接?
分布式·websocket·网络协议·http·设计模式·系统架构·wpf
Kiyra11 小时前
八股篇(1):LocalThread、CAS和AQS
java·开发语言·spring boot·后端·中间件·性能优化·rocketmq
程序员阿鹏11 小时前
分布式事务管理
java·开发语言·分布式
武子康12 小时前
Java-213 RocketMQ(MetaQ)演进与核心架构:NameServer/Broker/Producer/Consumer 工作机制
大数据·分布式·架构·消息队列·系统架构·rocketmq·java-rocketmq
2301_7679026412 小时前
Ceph 分布式存储从入门到实战
分布式·ceph
FinTech老王13 小时前
制造业Oracle迁移替换:集中式vs分布式架构如何选择?
分布式·oracle·架构
风跟我说过她13 小时前
HBase完全分布式部署详细教程(含HA高可用版+普通非HA版)
大数据·数据库·分布式·centos·hbase
Kiyra13 小时前
Spring Boot Starter 自定义开发:封装中间件配置
spring boot·redis·后端·缓存·中间件·性能优化·rocketmq
十五年专注C++开发14 小时前
Jieba库: 一个中文分词领域的经典库
c++·分布式·自然语言处理·中文分词
Vic1010114 小时前
【无标题】
java·数据库·分布式