Kafka架构:
RocketMQ架构:
区别 | Kafka | RocketMQ | 说明 |
---|---|---|---|
0拷贝技术 | sendfile | mmap | sendfile将数据直接从内核缓冲区传输到网络缓冲区;mmap使用内存映射技术将数据映射到进程的地址空间。 |
架构-集群管理 | zk(后续优化为了raft协议) | namespace | |
架构- 存储方式 | partition(由多个segment组成,属于某一个topic) | queue(offset,属于某个topic)+ commitLog(具体数据) | RocketMQ解决了Kafka在多topic下造成随机写问题 |
架构- 备份 | 同步segment文件,每个topic单独建立通信渠道 | 直接同步commitLog | |
功能-事务 | 简单事务(发送多个消息同时成功或失败) | 复杂事务(自定义逻辑+发送消息) | |
功能-消息回溯 | offset | offset+时间 | |
功能-更多业务支持 | 无 | 延迟队列,消息过滤(消息打标),死信队列 | 根本原因:0拷贝技术。sendfile拿不到具体数据。 |