Kafka & RocketMQ 核心差异#

一、定位与设计目标#

  1. kafka 面向日志流、大数据流式计算,优先追求超高吞吐,对消息少量丢失、短暂乱序容忍度高
  2. rocketmq 面向电商 / 金融核心业务,优先追求消息可靠、业务特性完备,零丢失、保顺序、支持复杂业务逻辑

二、存储架构#

  1. kafka Topic 拆分为多个Partition,每个分区独立日志文件
  2. rocketmq 统一写入全局大文件 CommitLog,再异步生成 ConsumeQueue(队列文件)

三、消息顺序#

  1. kafka 仅保证单个 Partition 内写入与读取顺序一致。
  2. rocketmq 队列内全程严格保序。

四、消费位点 Offset#

  1. kafka Offset 由客户端本地维护、定时提交
  2. rocketmq Offset 持久化在服务端统一管理

五、核心业务功能#

  1. kafka 无原生分布式事务消息、无定时 / 延迟消息
    无内置重试队列、死信队列,异常消息处理、定时任务都需要业务自行实现
  2. rocketmq 原生两阶段事务消息,保障跨服务数据一致性 内置多级延迟 / 定时消息 自带重试队列、死信队列,自动处理消费失败消息,运维成本低