MST

星途 面试题库

面试题:消息队列RocketMQ中生产者的消息发送模式有哪些及适用场景

在RocketMQ中,生产者有多种消息发送模式,请阐述常见的发送模式,并说明每种模式适用于什么样的业务场景。
31.2万 热度难度
后端开发消息队列

知识考点

AI 面试

面试题答案

一键面试

同步发送

  1. 模式阐述:生产者发送消息后,会等待MQ Broker的响应,直到收到响应或者超时。这种方式能确保消息发送的结果,消息可靠性高。
  2. 适用场景:适用于对消息可靠性要求极高,且对响应时间不是特别敏感的场景。例如金融交易场景,每一笔交易的消息必须确保准确到达MQ,用于后续的业务处理和记录,即使发送消息的过程稍慢也可以接受。

异步发送

  1. 模式阐述:生产者发送消息后,无需等待MQ Broker的响应,继续执行后续代码。当MQ Broker处理完消息返回响应时,通过回调函数来处理响应结果。这种方式不会阻塞生产者线程,能提高系统的吞吐量。
  2. 适用场景:适用于对吞吐量要求高,且可以容忍一定消息处理延迟的场景。比如日志收集系统,大量的日志消息发送,不需要立即知道每条日志是否成功发送到MQ,只需要快速将日志消息发送出去,后续通过回调函数来处理发送结果即可。

单向发送

  1. 模式阐述:生产者只负责将消息发送出去,不关心MQ Broker的响应,也不会等待响应。这种方式发送速度最快,但无法得知消息是否发送成功。
  2. 适用场景:适用于对消息可靠性要求不高,对发送速度要求极高的场景。例如一些业务系统的监控指标上报,偶尔丢失一些监控指标数据对整体业务影响不大,主要关注快速将指标数据发送出去,以减轻业务系统的性能压力。