面试题答案
一键面试主要同步方式
- 全量复制:新恢复的分片从主分片完整复制所有数据。这适用于新加入集群或数据量较小的情况,主分片将所有文档数据发送给新恢复分片。
- 增量复制:在全量复制基础上,对于全量复制后产生的增量数据(如新增、更新、删除操作),通过复制这些操作日志(通常是事务日志)来同步。这样可减少数据传输量,提升效率。
同步流程
- 分片分配:当发生故障导致分片需要恢复时,Elasticsearch的Master节点会选择一个合适的节点来承载新恢复的分片。
- 初始化连接:新恢复分片所在节点与主分片所在节点建立连接,告知主分片自己需要同步数据。
- 全量复制阶段:
- 主分片开始向新恢复分片发送文档数据。主分片会按一定顺序(如文档ID顺序等),批量将文档数据发送给新恢复分片。
- 新恢复分片接收数据,并将其写入本地存储,构建自己的索引结构。
- 增量复制阶段:
- 在全量复制过程中及之后,主分片会记录对数据的所有修改操作到事务日志中。
- 全量复制完成后,主分片将事务日志中的增量操作发送给新恢复分片。
- 新恢复分片接收并应用这些增量操作,确保与主分片的数据一致性。
- 完成同步:新恢复分片应用完所有增量操作后,向主分片发送确认消息,表明数据同步完成,此时新恢复分片可参与正常的读写操作。