发布于 

MQ面试相关

MQ选型

中间件 过期特性 重试机制 死信队列 延迟队列 批量投递
RabbitMQ ✅重试计数机制
Kafka
RocketMQ ✅重试队列

过期特性:推送消息的时候携带过期时间,在队列中消息过期之后,会将过去消息放到死信队列,消费者将无法消费;

延迟消息:只有时间到了指定时间才能被消费者消费到,其实MQ做法就是在消息未到消费时间的时候,消息所在的队列在一个临时队列。

MQ可靠性

投递可靠性

投递之后消息需要mq Server 给生产者ACK

像Rocket使用的半消息回查机制

保存的可靠性

磁盘保存,异步刷盘

从节点备份 副本同步写,副本强一致

消费的可靠性

消费ACK确认

  • 前置确认:会在消费的过程中,可能因为消费者的宕机,导致丢失消息,可以考虑使用事务消息表,上下游记录状态
  • 后置消费:在消费的过程中可能执行到了中间的某一部分逻辑,此时消费者宕机,此时可能导致重复消费问题,消费者下游业务需要整体保证消息消费的幂等问题。