面试题答案
一键面试水平扩展
- 策略:增加更多的节点到集群中,每个节点分担一部分数据和负载。例如在ElasticSearch集群中,通过添加新的节点来分散索引分片,使得每个节点存储和处理的数据量相对减少。
- 优点:
- 良好的扩展性:理论上可以无限增加节点,适应数据量和查询负载的大规模增长。
- 高可用性:当某个节点出现故障时,其他节点可以继续提供服务,因为数据有副本分布在不同节点。
- 负载均衡:数据和请求均匀分布在多个节点,减少单个节点压力。
- 缺点:
- 增加管理复杂度:节点增多,网络拓扑、节点间通信等管理难度增大。
- 数据再平衡开销:新节点加入或旧节点移除时,需要进行数据再平衡,可能影响集群性能。
垂直扩展
- 策略:提升单个节点的硬件配置,如增加CPU核心数、内存容量、磁盘空间等。比如将ElasticSearch节点所在服务器的内存从16GB升级到32GB。
- 优点:
- 简单直接:无需考虑节点间复杂的配置和协调,只对单个节点进行升级操作。
- 短期有效:能快速提升单个节点处理能力,应对短期内负载增长。
- 缺点:
- 扩展性有限:硬件升级存在物理极限,比如主板对CPU核心数、内存容量支持上限。
- 成本较高:高端硬件价格昂贵,且升级到一定程度性价比降低。
- 单点故障风险:单个节点故障可能导致整个服务受较大影响,因为没有其他节点分担。
选择合适扩展方式
- 数据量和负载增长趋势:若预计数据量和查询请求持续大规模增长,水平扩展更合适;若增长相对缓慢且在短期内,垂直扩展可解燃眉之急。
- 预算:水平扩展初期硬件成本低,但长期管理成本上升;垂直扩展硬件采购成本高。预算有限时倾向水平扩展。
- 应用场景对可用性要求:对高可用性要求极高,不容许服务中断场景,水平扩展因多节点容错更适用;对短期中断可接受场景,垂直扩展可考虑。