面试题答案
一键面试性能
- 吞吐量:消息队列处理消息的能力,每秒能处理大量消息的队列可应对高并发场景,比如电商的订单处理,高吞吐量可避免消息积压。吞吐量越高,系统能承载的业务量越大,是衡量消息队列性能的关键指标。
- 延迟:从消息发送到被接收处理的时间间隔。对于实时性要求高的业务,如金融交易、实时监控,低延迟的消息队列能确保数据及时传递和处理,保证业务的实时响应。
可靠性
- 消息持久化:确保消息在队列服务器故障、重启等情况下不丢失。如采用磁盘持久化,将消息写入磁盘,即使服务器崩溃,重启后也能恢复消息,对于重要业务消息,如银行转账指令,消息持久化至关重要。
- 副本机制:通过多副本方式,将消息复制到多个节点存储。当某个节点出现故障时,其他副本可继续提供服务,保证消息队列的可用性和数据不丢失,提高系统的容错能力。
- 事务支持:支持事务可保证消息处理的原子性,要么全部成功,要么全部失败回滚。在涉及多个操作依赖的场景,如电商下单时扣减库存、更新订单状态等操作,事务支持确保业务一致性。
功能特性
- 消息顺序性:某些业务场景要求消息按发送顺序处理,如股票交易系统中订单的先后顺序。支持严格消息顺序的队列能满足这类需求,保证业务逻辑正确执行。
- 消息过滤:允许根据特定规则筛选消息,消费者可只接收感兴趣的消息。在物联网场景中,设备产生大量数据,通过消息过滤可使应用只获取特定设备或特定类型的数据,减少不必要的数据传输和处理。
- 消息回溯:可重新消费历史消息,有助于问题排查和数据恢复。例如生产环境出现问题,可回溯消息重新处理,分析问题原因或恢复数据状态。
- 多协议支持:若微服务使用多种技术栈和通信协议,支持多种协议的消息队列能更好地适配不同服务间的通信,提升系统集成的灵活性。