【2023】DevOps、SRE、运维开发面试宝典之RabbitMQ相关面试题

7、RabbitMQ

1、什么是MQ消息队列

MQ的全称是Message Queue(消息队列),是在消息的传输过程中保存消息的容器,用于分布式系统之间进行通信,通信双方将请求写入到MQ消息队列中,被调用者从MQ中读取请求数据。

在传统情况下,系统之间的调用都是通过接口进行远程调用的,如下图所示,A系统通过远程接口调用B系统,两个系统之间会存在耦合性,当B系统出现异常时,A系统的业务逻辑将会失败,并且在高并发时,系统之间的频繁调用,对整体架构性能是有所影响的。

当程序架构中引入了MQ消息队列中间件之后,请求发送的一方(A系统)称之为生产者,将通信请求通过发布的方式写入到MQ消息队列中,被请求的接收方(B系统)称之为消费者,从MQ消息队列中通过订阅的方式拿到A系统发过来的通信请求,最终完成系统调用。

2、MQ消息队列的优势

MQ的优势在于:

  • 应用解耦:提高系统容错性和可维护性。

当架构中引入了MQ消息队列,可以有效的解决系统之间的耦合,从一定程度上实现应用解耦。

如下图所示,用户下单后,订单系统会将消息数据写入到MQ消息队列中,写入完成后就会返回给用户提示下单完成,库存系统、物流系统、支付系统再去MQ消息队列中消费订单系统发过来的消息数据,进行对应的业务逻辑,即使库存系统挂了,也不会影响用户的下单,并且在短时间内会迅速恢复,再从MQ中消费数据完成业务逻辑。</

猜你喜欢

转载自blog.csdn.net/weixin_44953658/article/details/129295109