为什么使用消息队列?
用于解耦系统、削峰填谷、异步处理、流量缓冲。
常见的 MQ 有哪些?
RabbitMQ、Kafka、RocketMQ、Redis Stream、ActiveMQ 等。
消息队列的可靠性如何保障?
确认机制(ack)、消息持久化、重试机制、幂等性保障。
什么是消息的幂等性?如何实现?
幂等性是指多次执行结果一致。常用唯一 ID + 状态表记录处理结果。
如何避免消息丢失?
设置消息持久化、消费者手动 ack、使用事务或死信队列。
MQ 中的消费模式有哪些?
点对点(queue)和发布/订阅(topic)模型。
如何实现延迟队列?
使用 TTL + 死信队列,或 MQ 提供的延迟插件(如 RabbitMQ 的延迟插件)。
MQ 如何实现消息顺序?
通过 partition + 单个消费者、同一个 key 的消息进入同一个队列。
Kafka 与 RabbitMQ 的区别?
Kafka 是高吞吐日志系统,适合大数据流处理;RabbitMQ 强调可靠投递和事务性。
消息堆积怎么办?
增加消费者实例、提高消费速率、评估上下游处理瓶颈。