后端岗位面试题更新 2026-08-05

请从架构、消息语义、性能和运维成本等角度,对比 RocketMQ 与 Kafka 的差异,并分别指出各自的优点和不足。

后端开发技术原理技术选型方案权衡

考察说明

考查对主流消息队列核心特性差异的理解及选型能力。

回答思路

  1. 【回答框架 1】架构差异:Kafka基于分区和副本,依赖ZooKeeper(或新版KRaft),追求顺序写和高吞吐;RocketMQ基于CommitLog和ConsumeQueue,支持丰富队列模型,命名服务NameServer更轻量。
  2. 【回答框架 2】消息语义:Kafka提供至少一次,可通过幂等生产者实现精确一次;RocketMQ默认至少一次,支持事务消息实现分布式事务最终一致,且消费进度更精确。
  3. 【回答框架 3】过滤与顺序:RocketMQ支持Tag和SQL过滤,顺序消息(全局或分区)能力更强;Kafka主要靠分区内有序,广播消费通过独立消费组实现。
  4. 【回答框架 4】功能与运维:RocketMQ提供延迟消息、死信队列等开箱即用功能,但客户端生态和社区规模不及Kafka;Kafka生态庞大(流处理、连接器等),运维需关注分区数、副本和磁盘规划。
  5. 【关键点 1】Kafka高吞吐、低延迟,适合日志采集和流处理;RocketMQ功能丰富,适合金融等对可靠性要求高的场景。
  6. 【关键点 2】RocketMQ事务消息通过半消息和回查保证最终一致,Kafka依赖幂等生产者。
  7. 【关键点 3】Kafka顺序性依赖分区,RocketMQ支持全局顺序和分区顺序。
  8. 【关键点 4】选型需要考虑吞吐量、消息语义、运维成本和生态成熟度。
  9. 【易错点 1】不要认为Kafka绝对比RocketMQ快,RocketMQ在亿级消息下性能也足够。
  10. 【易错点 2】Kafka精确一次涉及事务协调,可能增加延迟和复杂度。
  11. 【易错点 3】忽略集群规划和监控,两者都可能出现分区不均或消费积压。