MST

星途 面试题库

面试题:消息队列之RocketMQ在分布式系统中的常见应用场景及原理

请阐述RocketMQ在分布式系统中至少两个常见的应用场景,并说明在这些场景下RocketMQ是如何通过自身特性来保障系统的可靠性和稳定性的。
42.9万 热度难度
后端开发消息队列

知识考点

AI 面试

面试题答案

一键面试

应用场景一:异步处理

  1. 场景描述:在电商系统中,用户下单后,除了创建订单记录外,还可能需要进行库存扣减、积分增加、发送短信通知等后续操作。将这些操作异步化,能显著提高用户下单响应速度。
  2. 保障可靠性和稳定性方式
    • 消息持久化:RocketMQ将消息持久化到磁盘,即使Broker重启,消息也不会丢失,确保库存扣减、积分增加等操作对应的消息不会因为系统故障而遗漏。
    • 高可用性:RocketMQ采用Master - Slave架构,Master负责处理读写操作,Slave实时从Master同步数据。当Master出现故障时,Slave能快速切换为Master继续提供服务,保证异步任务处理的连续性。

应用场景二:削峰填谷

  1. 场景描述:在秒杀活动期间,短时间内会有大量用户请求涌入系统。如果直接将这些请求打到后端数据库,可能导致数据库因压力过大而崩溃。通过RocketMQ进行削峰填谷,能使系统平稳处理请求。
  2. 保障可靠性和稳定性方式
    • 流量控制:RocketMQ提供了流控机制,可以限制消费者从Broker拉取消息的速率,避免后端系统因瞬间接收过多消息而不堪重负,保证系统在高流量下稳定运行。
    • 消息重试:当消费者处理消息失败时,RocketMQ支持消息重试机制。可以设置重试次数和重试间隔,确保在一定条件下,消息能够被成功处理,不会因偶发的处理失败而丢失,提高系统的可靠性。