面试题答案
一键面试消息消费模式
- 集群消费(Cluster):
- 特点:相同消费组内的多个消费者共同消费主题中的消息,每个消息只会被组内一个消费者消费。
- 应用场景:适用于高吞吐量的场景,例如订单处理系统,多个订单处理模块可以组成一个消费组,共同处理订单消息,提高处理效率。
- 广播消费(Broadcast):
- 特点:消息会被发送到消费组内的每个消费者,每个消费者都会消费到所有消息。
- 应用场景:适用于需要每个消费者都处理相同消息的场景,如系统配置更新消息,所有相关服务都需要同步更新配置。
消费模式切换要点
- 消息重复消费:从集群消费切换到广播消费时,由于广播消费每个消费者都会消费所有消息,可能会出现消息重复消费的情况,需要在业务逻辑中增加幂等性处理,确保相同消息多次消费结果一致。
- 负载均衡:集群消费依赖负载均衡策略来分配消息给不同消费者,切换到广播消费后,负载均衡不再起作用。反之,从广播消费切换到集群消费,需要重新关注负载均衡机制是否正确配置,确保消息能合理分配给各个消费者。
- 消费状态管理:广播消费不需要管理消费进度,因为每个消费者都消费所有消息;而集群消费需要记录消费进度。切换时要注意消费进度的处理,如从广播消费切换到集群消费,可能需要重新初始化消费进度,以避免重复消费或漏消费。