面试题答案
一键面试- 数据一致性保障:
- 副本分片机制:Elasticsearch 每个主分片都有对应的副本分片。当主分片节点发生故障时,Elasticsearch 会从副本分片中选择一个提升为新的主分片。由于副本分片是主分片的拷贝,这样能在很大程度上保障数据的一致性。在正常情况下,Elasticsearch 通过同步写操作来确保主分片和副本分片的数据一致性。当对主分片进行写操作时,会同时将操作复制到副本分片,只有当足够数量(可以通过
consistency
参数配置,如one
、quorum
、all
等)的副本分片确认写入成功后,才会返回写入成功的响应给客户端。
- 副本分片机制:Elasticsearch 每个主分片都有对应的副本分片。当主分片节点发生故障时,Elasticsearch 会从副本分片中选择一个提升为新的主分片。由于副本分片是主分片的拷贝,这样能在很大程度上保障数据的一致性。在正常情况下,Elasticsearch 通过同步写操作来确保主分片和副本分片的数据一致性。当对主分片进行写操作时,会同时将操作复制到副本分片,只有当足够数量(可以通过
- 主分片节点恢复流程稳定性:
- 选举机制:
- 候选主节点资格:只有具备
master
资格的节点才有可能被选举为主节点。节点在启动时会广播自己的信息,其他节点会接收到这些信息并了解哪些节点是候选主节点。 - 选举算法:Elasticsearch 使用基于版本号的选举算法。当主节点故障时,候选主节点会比较自己保存的集群状态版本号,版本号最高的节点有更高的优先级成为新的主节点。如果版本号相同,则比较节点 ID(节点启动时生成的唯一标识),ID 较小的节点会被选举为主节点。这种选举算法能够确保在大多数情况下,集群能快速且稳定地选举出一个新的主节点。
- 候选主节点资格:只有具备
- 重新分配分片:新的主节点选举出来后,会负责重新分配分片。它会根据集群的健康状态(如节点数量、磁盘空间等),将故障主分片的副本分片分配到合适的节点上,并确保每个分片都有合适数量的副本,以维持集群的高可用性和数据冗余。同时,新主节点会向集群中的其他节点发送更新后的集群状态信息,使所有节点都能同步新的分片分配情况。
- 选举机制: