面试现场【MQ篇】
本文梳理了十个常见的消息队列面试题及要点:阐述了 MQ 的概念和 RabbitMQ、RocketMQ、Kafka 等主流中间件;列举了应用解耦、流量削峰、异步处理、消息通信、远程调用等典型场景;重点说明了生产者、存储端和消费者三阶段如何防止消息丢失、实现同步刷盘和复制、确保消费成功;介绍了保证顺序消费的分区/单线程策略及局部有序实现方式;讨论了重复消费的可能性及基于唯一标识或 Redis 的幂等方案;提供了排查与扩容、分批消费等应对消息积压的思路;对 Kafka、RocketMQ、RabbitMQ 在吞吐、语言、持久化、顺序、集群等方面进行对比选型;解析了基于副本选举的高可用机制;说明了事务消息的两段提交流程以保证数据一致性;最后给出设计自研 MQ 时应考虑的整体流程、RPC、持久化、消费模型、高可用、事务与伸缩等关键要素。