elasticsearch - Elasticsearch - 节点如何检测分片故障
问题描述
我对弹性搜索有基本的了解。我遇到了以下短语。来自https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-replication.html
在主节点本身发生故障的情况下,托管主节点的节点将向主节点发送有关它的消息。索引操作将等待(最多 1 分钟,默认情况下)让主节点将其中一个副本提升为新的主节点。
问题是,托管分片的节点如何知道分片的故障?据我了解,shard 是在数据节点上运行的 lucene 实例。
解决方案
我想,你对这个陈述感到困惑
托管分片的节点如何知道分片的故障?据我了解,shard 是在数据节点上运行的 lucene 实例。
虽然确实每个分片都是一个 Lucene 实例(索引),但它不是 1:1 映射,并且 elasticsearch 的 1 个数据节点可以托管多个分片,而不仅仅是 1 个分片,Lucene 分片的故障并不总是意味着数据节点的故障.
持有主分片的节点知道它是否连接到网络,是否能够索引数据或分片是否已损坏,如@julian 所述,然后它可以将该信息发送到主节点,然后将其他副本提升为主节点它包含在所有节点都持有的集群状态中。
在网络故障情况下,节点上托管的所有主分片都将被其他分片替换,并且很容易检测到主分片不会从该数据节点发出心跳。
希望我的答案的大胆部分是您正在寻找的,否则请随时发表评论并尝试进一步解释。
推荐阅读
- swift - 从独立 Apple Watch 应用将媒体上传到 Firebase 存储
- python - 是否可以一个接一个地打开 PDF 文件,它们的名称使用 Python 保存在文本文件中?
- javascript - 为什么这不起作用 - 动态生成的更改事件
- grafana - 有没有办法使带有 Prometheus 数据源的仪表板负责/可加载,即使其中一个数据源已关闭?
- reactjs - 如何在 React 中管理来自 Parent 组件的列表并呈现它?
- reactjs - 部署项目时遇到 React js 项目问题
- python - 对输入数据进行白化时模型未训练和负损失
- python - 查找列表元素的所有可能排列,直到组合达到提供的长度
- java - 如何返回在 2 个班级之间选择的班级?
- java - 没有在 instagram 的搜索框中搜索