面试题答案
一键面试- 随机(Random):
- 工作原理:生产者在发送消息时,随机从所有的Broker队列中选择一个队列进行消息发送。这种策略简单直接,在一定程度上能使消息较为均匀地分布在各个队列上,避免某个队列过度繁忙。
- 轮询(Round Robin):
- 工作原理:生产者按照顺序依次从Broker队列列表中选择队列发送消息。例如,第一次选择队列1,第二次选择队列2,依此类推,到列表末尾后又重新从列表头部开始选择。该策略能确保消息平均分配到各个队列,实现较为均衡的负载。
- 一致性哈希(Consistent Hashing):
- 工作原理:对消息的Key进行哈希计算,得到一个哈希值,然后根据这个哈希值将消息映射到特定的Broker队列上。如果消息的Key不变,无论在什么情况下,该消息始终会被发送到同一个队列。这种策略适用于需要将具有相同特征(通过Key标识)的消息发送到同一队列的场景,比如对同一订单相关的消息发送到固定队列,便于后续处理。
- 根据Broker的负载情况动态分配(Dynamic Assignment Based on Broker Load):
- 工作原理:生产者实时获取各个Broker队列的负载情况,如队列的堆积情况、处理速度等指标。然后根据这些负载信息,优先选择负载较轻的队列进行消息发送,以实现更合理的负载均衡,提升整体系统性能。