Elasticsearch 6.0 vs 7.0 選舉機制對比表

 

特性/參數

Elasticsearch 6.0

Elasticsearch 7.0

變化説明

核心選舉機制

Zen Discovery

移除Zen Discovery,引入新的集羣協調層

7.0徹底重寫了集羣協調機制,提供更好的性能和穩定性

法定人數配置

discovery.zen.minimum_master_nodes: 2

自動計算和管理

7.0不再需要手動配置,系統自動根據節點數計算法定人數

初始主節點配置

無專用參數

cluster.initial_master_nodes: ["node1", "node2", "node3"]

7.0引入新參數,明確指定初始集羣啓動時的主節點候選

節點發現方式

discovery.zen.ping.unicast.hosts: ["host1", "host2"]

discovery.seed_hosts: ["host1:9300", "host2:9300"]

7.0參數名變更,功能類似但實現機制不同

主節點選舉超時

discovery.zen.ping_timeout: 3s

移除,由新機制替代

7.0使用新的超時控制機制

故障檢測

discovery.zen.fd.ping_interval: 1sdiscovery.zen.fd.ping_timeout: 30s

discovery.heartbeat_interval: 1sdiscovery.request_peers_timeout: 3s

7.0參數名和默認值變化,故障檢測更高效

選舉策略

基於Bully算法變種

基於Raft-inspired算法

7.0使用更現代的共識算法,選舉更穩定

腦裂防護

依賴手動配置的minimum_master_nodes

內置自動腦裂防護

7.0大大降低了因配置錯誤導致腦裂的風險

引導檢查

檢查minimum_master_nodes配置

檢查cluster.initial_master_nodes配置

7.0引導檢查重點變化

集羣形成控制

相對鬆散

更嚴格的集羣形成規則

7.0要求明確指定初始主節點,避免意外集羣形成

節點加入驗證

基於網絡發現

增強的安全性驗證

7.0對節點加入有更嚴格的驗證機制

配置複雜度

高(需要手動計算和配置法定人數)

低(大部分參數自動化)

7.0顯著簡化了集羣配置

時來天地皆同力,運去英雄不自由