# 1. Kafka vs RabbitMQ vs RocketMQ 的吞吐量对比 A RabbitMQ 吞吐最高 B 三者吞吐相同 C 吞吐大致 Kafka > RocketMQ > RabbitMQ,源于日志追加与批处理 vs 逐条确认的架构差异 ✓ 正确答案 D RocketMQ 吞吐远低于 RabbitMQ
# 2. Kafka vs RabbitMQ vs RocketMQ 的消息可靠性 A 三者都只保证 once B RocketMQ 不支持副本 C 三者都支持至少一次 + 持久化副本 + 消费 ack,配合幂等实现不丢不重,端到端都需三端配合 ✓ 正确答案 D 可靠性只靠 broker 端
# 3. Kafka vs RabbitMQ vs RocketMQ 的运维复杂度 A Kafka 运维最简单 B 运维复杂度大致 Kafka > RocketMQ > RabbitMQ,越大规模流式/功能越丰富运维越复杂 ✓ 正确答案 C 三者运维难度相同 D RabbitMQ 运维最复杂
# 4. Redis Stream 作为轻量消息队列的边界 A Stream 可承载海量历史 B Stream 吞吐与 Kafka 相当 C Stream 受内存限制、吞吐有限、持久化弱于专业 MQ,适合轻量场景,超出需求应迁移 Kafka/RocketMQ ✓ 正确答案 D Stream 支持延迟队列
# 5. Kafka、RocketMQ、RabbitMQ 三者在吞吐、可靠性、延迟与生态上的选型矩阵如何构建? A 所有场景都选 Kafka B 延迟与吞吐无关 C 生态不影响选型 D 按吞吐/可靠性/延迟/生态四维决策:大数据流用 Kafka,高吞吐+事务用 RocketMQ,灵活路由低延迟用 RabbitMQ ✓ 正确答案
# 6. Kafka 的日志语义,分区有序、消息追加与消费者组 rebalance 对 Java 消费端的影响如何? A rebalance 不影响消费端 B rebalance 后无重复消费 C 分区内无序 D 分区内有序且可重放,rebalance 会中断消费并可能重复消费,Java 端需幂等、调优 poll 与监听 rebalance 回调 ✓ 正确答案
# 7. 自建 Kafka 集群与云托管 MQ(SQS/阿里云 RocketMQ)在成本、运维与 SLA 上的选型 A 云托管无法弹性伸缩 B 云托管一定更便宜 C 自建 SLA 更高 D 自建可控可定制但运维成本高,云托管省运维有高 SLA 但按量计费有锁定,按规模/运维能力/SLA 权衡 ✓ 正确答案
# 8. RocketMQ 的事务消息如何实现"本地事务+消息发送"原子性,与 Kafka 事务的差异? A 两者都协调数据库 B Kafka 事务能保证数据库原子 C RocketMQ 用半消息+回查桥接业务本地事务,Kafka 事务协调 Kafka 内部跨分区/主题,都不介入数据库,跨系统需 Outbox ✓ 正确答案 D RocketMQ 事务消息无需回查
# 9. 消息队列选型的业务驱动(流处理/任务队列/事件溯源) A 流处理适合 RabbitMQ B 流处理要吞吐重放选 Kafka,任务队列要可靠路由选 RabbitMQ/RocketMQ,事件溯源要持久有序选 Kafka/Pulsar ✓ 正确答案 C 任务队列要高吞吐 D 事件溯源无需重放
# 10. ActiveMQ/Artemis(JMS 兼容)在既有 JMS 技术栈中的迁移成本与相比经典 ActiveMQ 的改进 A Artemis 不兼容 JMS B Artemis 迁移需重写业务代码 C Artemis 比经典 ActiveMQ 性能更差 D Artemis 是 JMS 兼容的现代引擎,API 兼容迁移成本低,相比经典 ActiveMQ 改进性能、多协议与集群高可用 ✓ 正确答案
# 11. 消息积压的 Java 侧治理,消费限流、批量拉取、死信队列与重放如何配合? A 死信会加重积压 B 积压无法治理 C 批量消费提升吞吐、限流保护下游、死信隔离失败消息、重放补齐积压,先监控 lag 定位原因 ✓ 正确答案 D 重放会丢失消息
# 12. Kafka vs RocketMQ 的事务消息,半消息与本地事务的时序、回查机制差异如何? A 两者都有业务回查 B RocketMQ 事务消息无需半消息 C Kafka 事务也协调数据库 D RocketMQ 用半消息+回查桥接业务本地事务,Kafka 用事务协调器协调 Kafka 内部,无业务回查,跨系统需 Outbox ✓ 正确答案
# 13. 消息顺序的保证,Kafka 分区内有序 vs RocketMQ 队列内有序如何实现? A 两者都保证全局有序 B Kafka 分区内有序靠日志追加+单消费者,RocketMQ 靠 MessageListenerOrderly 加锁,跨分区/队列不保证全局有序 ✓ 正确答案 C RocketMQ 天然有序无需监听器 D 跨队列有序由 MQ 保证
# 14. MQ 的削峰填谷与异步解耦适用边界,哪些场景不适合引入消息队列 A 所有场景都适合引入 MQ B MQ 不增加复杂度 C MQ 适合削峰填谷与异步解耦,但强一致/实时返回/小数据量场景引入 MQ 成本大于收益不宜使用 ✓ 正确答案 D 强一致场景适合 MQ
# 15. 消息堆积的治理,消费者扩容、批量消费、死信处理与监控指标如何? A 扩容消费者一定解决所有堆积 B 堆积只能靠重启 C 消费者扩容/批量消费提升吞吐,死信隔离失败消息,监控 lag 与消费速率定位原因,指标驱动治理 ✓ 正确答案 D 死信处理与堆积无关
# 16. RocketMQ 的延迟消息/定时消息在 Java 场景的实现原理与精度限制? A 延迟消息基于离散延迟级别(18 级)与定时扫描,精度受级别与扫描间隔限制,5.x 支持任意定时但非毫秒级 ✓ 正确答案 B 延迟级别可任意指定秒数 C 延迟消息精度到毫秒 D 延迟消息无需 broker 调度
# 17. 延迟消息的实现,RocketMQ 延迟级别 vs Kafka 时间轮的差异如何? A 两者都精确到毫秒 B 时间轮只能离散延迟 C RocketMQ 支持任意精确延迟 D RocketMQ 延迟级别是离散的定时扫描,Kafka 时间轮分层哈希轮支持任意时间的精确延迟调度 ✓ 正确答案
# 18. Apache Pulsar 的分层存储(Segment 与 BookKeeper)与 Kafka 的架构差异 A 两者都存储计算耦合 B Pulsar 与 Kafka 架构相同 C Pulsar 用 BookKeeper 分段存储并存储计算分离,支持分层存储与弹性扩展,Kafka 是耦合的本地日志 ✓ 正确答案 D Pulsar 数据无法长期保留