面试题答案
一键面试基本原理
- 节点角色与权重:在Elasticsearch中,每个节点都有不同的角色,如候选主节点(master-eligible)。每个候选主节点都有一个权重值,默认为1。动态调整机制会根据一定规则改变这些权重值。
- 投票机制:选主过程中,候选主节点会互相投票。当一个候选主节点收到超过半数的赞成票时,它将成为主节点。动态调整会影响投票权重,进而改变选主结果。例如,如果一个节点在集群中表现出更好的性能、更高的稳定性,它的权重可能会被调高,使得它在选主投票时更容易获得更多票数。
触发动态调整的常见场景
- 节点性能变化:如果某个节点的CPU、内存使用率长期保持在较低水平,且网络连接稳定,说明该节点性能良好,可能会触发权重上调。反之,如果节点频繁出现资源不足(如内存溢出、CPU 100% 占用),导致响应变慢或不稳定,其权重可能会被下调。
- 网络拓扑变化:当集群网络发生变化,如新增或移除网络设备、网络分区等情况。如果某个节点处于网络连接更稳定、带宽更高的子网中,可能会增加其权重;而处于网络波动较大区域的节点,权重可能被降低。
- 集群规模变化:当新节点加入集群或现有节点离开集群时,为了适应新的集群结构,权重可能会动态调整。例如,新加入的节点如果具备更强大的硬件配置,可能会在初始阶段赋予较高权重,以平衡集群负载和选主能力。
调整对集群选主过程的影响
- 选主结果改变:权重调整直接影响投票结果。原本可能因为票数不足而无法成为主节点的高性能节点,在权重提高后,可能在下次选主时获得足够票数当选。这有助于让更合适的节点成为主节点,提升集群整体的稳定性和性能。
- 选主速度:动态调整可能加快选主速度。如果权重调整使得优势节点的优势更加明显,在选主时能更快地获得超过半数的票数,从而缩短选主过程,减少集群在无主状态下的时间,降低对业务的影响。
- 集群稳定性:合理的权重动态调整有助于维持集群的长期稳定性。通过将主节点角色赋予更稳定、性能更好的节点,可以减少主节点频繁更替带来的集群动荡,保障数据的一致性和可用性。