ElasticSearch 低成本高可用最佳实践
1. 目标
本方案主要解决单节点故障对集群造成的影响,保证数据的完整性、集群功能的正确性。
2. 方案步骤
Master 节点至少 3 个,不同物理主机部署
所有 Master 节点需配置在属性 discovery.seed_hosts 中,适用于所有节点
数据节点:当 number_of_replicas=1 时,不同物理主机部署;number_of_replicas=2 时,每台物理主机最多部署两个数据节点,也就是说每台物理主机最多部署的数据节点数量等于 number_of_replicas。
3. 方案说明
Master 节点主要职责:集群管理、节点管理和索引管理,如果单 Master 挂掉,集群无法对外提供服务,所以 Master 至少 >=3 的奇数节点部署在其他物理机。
为了保证数据的完整性,1 份数据至少存储在两个不同的物理中。生产级的做法是存储 3 份数据,每份数据存储于不同物理主机。
4. 集群准备
4.1 主机资源
4.2 安装步骤
复制代码
4.3 创建分片
复制代码
4.4 批量写入数据
复制代码
5. 方案验证
5.1 单 master 挂掉对历史数据读、实时数据写的影响
这里面 master-2 为主节点,kill 掉
可以发现集群重启选择了 master 节点
5.1.1 验证历史数据的读请求
5.1.2 验证实时数据的写请求
通过 head,可以看到插入的数据
5.2 单数据节点挂掉对历史数据读、实时数据写的影响
这里面 kill data-3
5.2.1 验证历史数据的读请求
复制代码
5.2.2 验证实时数据的写请求
通过 head 进行查看
6. 结论
单 master 节点挂掉,对历史数据的读、实时数据的写无影响
单 node 节点挂掉,对历史数据的读、实时数据的写无影响
版权声明: 本文为 InfoQ 作者【冰心的小屋】的原创文章。
原文链接:【http://xie.infoq.cn/article/2ef8948048152377261e84868】。文章转载请联系作者。
评论