Elasticsearch 在腾讯内部、腾讯公有云、专有云等拥有海量规模,客户群体广泛、应用场景丰富、覆盖日志实时分析、结构化数据分析、全文检索等场景。
Elasticsearch 7.x 选举算法改为基于Raft 实现,与标准Raft 相比,最大的区别是允许选民可以投多票,当产生多个主节点的时候,让最后一个当选,这样可以更快的选出主节点。
但是这种机制同时也有缺点,就是会使竞选过程比较激烈。
特别是当集群节点数量比较多的时候,候选人反复竞争可能会持续很长时间,导致集群长时间无主不可服务。
本文重点介绍腾讯 Elasticsearch 内核团队在集群管理方面所做的优化,包括:
- 指定master功能,能够将当前master 快速切换到指定节点;
- 在两轮选举之间增加一定的超时冷却时间,避免选举反复循环的竞争。
参考
ElasticCC: Elasticsearch-7.x-大集群选主优化
https://www.bilibili.com/video/BV1Wm4y1o7Nk/?vd_source=5c7b4794a20df7a0faea08ec59c04f0a
ElasticSearch 7.x之后选主流程
https://cloud.tencent.com/developer/article/1826426
ES7 选主去掉了minimum_master_nodes
https://blog.csdn.net/goodluck_mh/article/details/125152210
Elasticsearch系列之二选主7.x之前
https://juejin.cn/post/7051761366591340574
Elasticsearch系列之二选主7.x之后
https://juejin.cn/post/7072504620504842253