<mark>腦裂問題是指一個集群同時有多個主節點在工作。</mark>
<br/>
引起腦裂問題可能的成因:
* 網絡問題:集群間的網絡延遲導致一些節點訪問不到 master,認為 master 掛掉了從而選舉出新的master,并對 master 上的分片和副本標紅,分配新的主分片。
* 節點負載:主節點的角色既為 master 又為 data,訪問量較大時可能會導致 ES 停止響應造成大面積延遲,此時其他節點得不到主節點的響應認為主節點掛掉了,會重新選取主節點。
* 內存回收:data 節點上的 ES 進程占用的內存較大,引發 JVM 的大規模內存回收,造成 ES 進程失去響應。
腦裂問題解決方案:
* 減少誤判:`discovery.zen.ping_timeout: 3s`
節點狀態的響應時間,默認為 3s,可以適當調大,如果 master在該響應時間的范圍內沒有做出響應應答,判斷該節點已經掛掉了。調大參數(如 6s,`discovery.zen.ping_timeout: 6s`),可適當減少誤判。
* 選舉觸發: `discovery.zen.minimum_master_nodes:1`
該參數是用于控制選舉行為發生的最小集群主節點數量。當備選主節點的個數大于等于該參數的值,且備選主節點中有該參數個節點認為主節點掛了,進行選舉。官方建議為`(n/2)+1`,n 為主節點個數(即有資格成為主節點的節點個數)。
* 角色分離:即 master 節點與 data 節點分離,限制角色:
* 主節點配置為:`node.master: true node.data: false`
* 從節點配置為:`node.master: false node.data: true`
- Elasticsearch是什么
- 全文搜索引擎
- Elasticsearch與Solr
- 數據結構
- 安裝Elasticsearch
- Linux單機安裝
- Windows單機安裝
- 安裝Kibana
- Linux安裝
- Windows安裝
- es基本語句
- 索引操作
- 文檔操作
- 映射操作
- 高級查詢
- es-JavaAPI
- maven依賴
- 索引操作
- 文檔操作
- 高級查詢
- es集群搭建
- Linux集群搭建
- Windows集群搭建
- 核心概念
- 索引(Index)
- 類型(Type)
- 文檔(Document)
- 字段(Field)
- 映射(Mapping)
- 分片(Shards)
- 副本(Replicas)
- 分配(Allocation)
- 系統架構
- 分布式集群
- 單節點集群
- 故障轉移
- 水平擴容
- 應對故障
- 路由計算
- 分片控制
- 寫流程
- 讀流程
- 更新流程
- 多文檔操作流程
- 分片原理
- 倒排索引
- 文檔搜索
- 動態更新索引
- 近實時搜索
- 持久化變更
- 段合并
- 文檔分析
- 內置分析器
- 分析器使用場景
- 測試分析器
- 指定分析器
- 自定義分析器
- 文檔處理
- 文檔沖突
- 樂觀并發控制
- 外部系統版本控制
- es優化
- 硬件選擇
- 分片策略
- 合理設置分片數
- 推遲分片分配
- 路由選擇
- 寫入速度優化
- 批量數據提交
- 優化存儲設備
- 合理使用合并
- 減少Refresh的次數
- 加大Flush設置
- 減少副本的數量
- 內存設置
- 重要配置
- es常見問題
- 為什么要使用Elasticsearch
- master選舉流程
- 集群腦裂問題
- 索引文檔流程
- 更新和刪除文檔流程
- 搜索流程
- ES部署在Linux時的優化方法
- GC方面ES需要注意的點
- ES對大數據量的聚合實現
- 并發時保證讀寫一致性
- 字典樹
- ES的倒排索引
- Spring Data Elasticsearch
- 環境搭建
- 索引操作
- 文檔操作