elasticsearch 集群容错
Q:有三台服务器,三个 Primary Shard怎么配置能使 ElasticSearch 达到高可用
在此之前应该先清楚 shard 、primary shard 、replica shard、node 的概念
还有 primary shard 在确定好个数后后期是无法更改的,能扩容的只有 replica shard。
三个 Primary Shard 的意思就是:
3 primary + 3 replica = 6 shard (默认情况下)
此时服务器的 node 分配如下:
一台服务器宕机
此时整个 ES 集群是能够正常提供服务的,但是健康值会降到 yellow 状态
两台服务器宕机
此时你会发现剩下的一台服务器上只会有一个 primary shard 和 一个 replica shard 节点,此时集群状态是 red 转态。
怎么去分配能够使两台机器宕机后仍能正常使用?
设置更多的 replica shard
既然 primary shard 初始化后不能再扩容了,那么可以扩容 replica shard。
如下图,每台机器上不论是 primary 还是 replica shard 都保持了均与分布的状态,此时两台机器宕机后 ES 集群会自动将剩余的节点全都置位 primary shard。其内部原理将会在后面讲到。
总结
虽然 replica shard 可以在后期调整,但是最佳的做法就是在确认架构的时候,而不是发现问题后再进行补救。
- 原文作者:浮华生
- 原文链接:https://www.ahianzhang.com/post/elasticsearch02/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。