MQ常见面试题
面试题
为什么要使用MQ
- 异步
异步是在程序中就是在相同的时间做不同的事情,只在乎过程,不在意结果,与线程类似。
在上图中,在同步更新库存表时采用将其丢进消息中去,由MQ去给相应的商品微服务更新库存。 - 解耦
相应的两个程序互不影响。如上图,加入了MQ之后,订单微服务与商品微服务相互不影响。假设在下单过程中,商品微服务突然挂了,因为没有服务进行消费,MQ会先将消息存取,在商品微服务上线之后进行消费,互不影响。 - 削峰填谷
请求量太大,可以先把消息存在MQ中,在用户量访问不大的时候再进行消费处理。
在项目中使用MQ实现了什么功能
主要是使用MQ实现了数据同步及其异步处理发送消息的功能。
- 数据同步:MySQL和Redis、ES之间的数据同步
- 异步发送消息:发送短信验证码、发送代办信息、与微服务通信
MQ如何确保消息发送和消息接收
-
消息发送确认
1、confirmCallback
是一个回调接口,消息发送到bro