作者: | 来源:互联网 | 2023-06-22 20:54
目录
1.为什么要用消息队列(应用场景)?
2.各种消息队列产品的比较
3.消息队列的优势和缺点
4.如何保证消息队列的高可用?
5.如何保证消息不丢失?
6.如何保证消息不被重复消费?(消费幂等性)
重复消息产生的原因
消息幂等性
7.如何保证消息消费的顺序性?
8.大量消息堆积如何处理?
9.消息过期如何处理?
1.为什么要用消息队列(应用场景)?
(考察是否知道为什么要用消息队列?消息队列在项目中解决的是什么问题)
消息队列的本质:是一种“先进先出”的数据结构
常见应用场景:解耦、异步、削峰
2.各种消息队列产品的比较
(考察面试者是否对市面上的MQ产品做过调研?
在选择MQ时是否根据不同MQ的产品特点做过对比和取舍?)
常见消息队列:Kafka、RocketMQ、RabbitMQ、ActiveMQ
3.消息队列的优势和缺点
(考察面试者在项目中引入一个新的技术后,是否全面考虑过新技术对当前项目的影响)
优点:解耦、异步、削峰
缺点:系统可用性降低、系统复杂度提高、一致性问题
4.如何保证消息队列的高可用?
(考察面试者针对可用性降低问题的思考和解决思路,回答自己使用过的一两个MQ产品的高可用方案即可)
RabbitMQ高可用——镜像集群
RocketMQ高可用——双主双从
5.如何保证消息不丢失?
(1.考察是否清楚消息丢失的原因 2.如何保证消息不丢失)
总结:
消息丢失的原因:发送方、MQ、消费方都有可能导致消息丢失
如何保证消息不丢失
- 发送可靠发送
- MQ进行消息持久化
- 消费方消费完毕进行ACK确认,MQ收到消费方的ACK确认再删除本地消息
6.如何保证消息不被重复消费?(消费幂等性)
消息的重复消费和保证幂等性会经常被连着问,当出现了重复消费后,为了保证系统数据的正常,就必须要保证幂等性。
(考察点1.重复消息产生的原因的思考 2.保证消息幂等性的方案)
重复消息产生的原因
消息幂等性
总结:
消息重复原因:网络不可达,不可避免。
幂等性:消息携带全局ID,消费方接到消息时先查询再处理,根据全局ID做判重操作。
7.如何保证消息消费的顺序性?
(1.考察是否理解什么是消息顺序消费 2.考察是否思考过确保消息顺序消费的方案)
8.大量消息堆积如何处理?
(1.考察面试者是否清楚消息堆积的原因 2.消息堆积如何处理)
9.消息过期如何处理?