消息队列面试题总结
suichentree 12/10/2023 微服务
[toc]
# 消息队列面试题总结
# 为什么使用MQ?MQ的优点?
使用的MQ的好处就是:异步,解耦,流量削峰。
- 异步:微服务中,一个业务功往往涉及到多个服务。而完成一个业务功能,往往需要按步骤完成多个服务(例如先完成服务A-》再完成服务B-》最后完成服务C),这需要花费一些时间。而MQ提供的异步消息,可以让我们同时完成多个服务(同时完成服务ABC),这样可以减少业务功能的完成时间。
- 解耦:通过消息队列,可以将服务与服务之间的耦合,转换为服务与消息队列之间的耦合。降低了服务之间的耦合度。
- 流量削峰:对于MQ来说,服务与服务之间的调用,就相当于互相之间发消息。可以利用消息队列的特性,来缓解消息的发送量。相当于缓解服务的请求并发量。例如延时消息等。
# MQ有什么优缺点?
系统可用性降低:由于系统中服务之间的调用,从之前的直接调用,变成了依赖MQ的调用。这样会导致系统的可用性降低。
系统复杂度提高
- 如何保证消息传输的可靠性?
- 如何保证消息不被重复消费?
- 消息消费失败后,业务如何回滚?
# MQ有哪些常见问题?
常用问题主要有两个?
- 如何保证有序消息的有序生产和有序消费?
- 如何保证消息不被重复消费?