面试题答案
一键面试轮询(Round Robin)
- 优点:
- 算法简单,易于理解和实现。
- 能均匀地将请求分配到各个节点,保证每个节点都有机会处理请求,实现负载均衡。
- 缺点:
- 不考虑节点的处理能力差异,可能导致处理能力弱的节点过载,而处理能力强的节点资源闲置。
- 缺乏灵活性,无法根据实际运行情况动态调整分配策略。
随机(Random)
- 优点:
- 实现简单,随机选择节点,一定程度上能分散负载。
- 对于节点性能差异不大的场景,能较好地实现负载均衡。
- 缺点:
- 无法保证负载分配的均匀性,可能会出现某些节点请求过多,而某些节点请求过少的情况。
- 同样不考虑节点的处理能力,可能导致资源利用不合理。
一致性哈希(Consistent Hashing)
- 优点:
- 当节点增加或减少时,只有少量数据需要重新分配,大大减少了数据迁移量。
- 能较好地适应分布式系统的动态变化,适合在节点频繁变动的场景中使用。
- 相对公平地将负载分配到各个节点,避免了某些节点负载过重的问题。
- 缺点:
- 算法相对复杂,实现难度较高。
- 存在数据倾斜的可能,如果节点分布不均匀,某些节点可能会承载过多的数据。