面试题答案
一键面试同步发送
- 模式阐述:生产者发送消息后,会等待MQ Broker的响应,直到收到响应或者超时。这种方式能确保消息发送的结果,消息可靠性高。
- 适用场景:适用于对消息可靠性要求极高,且对响应时间不是特别敏感的场景。例如金融交易场景,每一笔交易的消息必须确保准确到达MQ,用于后续的业务处理和记录,即使发送消息的过程稍慢也可以接受。
异步发送
- 模式阐述:生产者发送消息后,无需等待MQ Broker的响应,继续执行后续代码。当MQ Broker处理完消息返回响应时,通过回调函数来处理响应结果。这种方式不会阻塞生产者线程,能提高系统的吞吐量。
- 适用场景:适用于对吞吐量要求高,且可以容忍一定消息处理延迟的场景。比如日志收集系统,大量的日志消息发送,不需要立即知道每条日志是否成功发送到MQ,只需要快速将日志消息发送出去,后续通过回调函数来处理发送结果即可。
单向发送
- 模式阐述:生产者只负责将消息发送出去,不关心MQ Broker的响应,也不会等待响应。这种方式发送速度最快,但无法得知消息是否发送成功。
- 适用场景:适用于对消息可靠性要求不高,对发送速度要求极高的场景。例如一些业务系统的监控指标上报,偶尔丢失一些监控指标数据对整体业务影响不大,主要关注快速将指标数据发送出去,以减轻业务系统的性能压力。