请对比 RocketMQ 与 Kafka 在架构、存储、事务消息和消息过滤等方面的差异。
考察说明
考察对两种主流消息中间件核心技术差异的理解与对比能力
回答思路
- 能准确描述 RocketMQ 的 NameServer 与 Kafka 的 ZooKeeper/KRaft 在服务发现与协调机制上的差异
- 能解释 RocketMQ 基于 CommitLog+ConsumeQueue 的存储设计与 Kafka 基于分区日志的存储设计,并说明 mmap 的使用场景
- 能对比事务消息实现机制(半消息、事务回查)与 Kafka 的幂等/事务协议(事务协调器与事务日志)
- 能说明消息过滤方式的差异(Tag、SQL92 过滤 vs 仅按 key 或由消费端过滤)
- 能结合适用场景总结各自的优劣与选型建议