Elasticsearch横向扩容

Elasticsearch横向扩容讲解

横向扩容过程,如何超出扩容极限,以及如何提升容错性?

primary & replica 自动负载均衡,6 个 shard,3 primary,3 replica。

  1. 原来有两个 node,第一个 node 有 P0,P1,P2 三个 primary,第二个 node 有 R0,R1,R2 三个 replica。
  2. 此时加入第三个 node,此时第一个 node 的 P2 和第二个 node 的 R1 会自动分配到第三个 node。

扩容之后,每个 node 有更少的 shard,IO/CPU/Memory 资源给每个 shard 分配更多,每个 shard 性能更好。

扩容的极限,6 个 shard(3 primary,3 replica),最多扩容到 6 台机器,每个 shard 可以占用单台服务器的所有资源,性能最好。

  1. 如果超出系统的扩容瓶颈,比如就 6 个 shared,但是要扩容到 9 台机器,同时想让系统的性能更好,增加 replica shared 数量,primary shared 数量是不能改变的,我们只能改变 replica shared,将 replica shared 增加到 2,此时就可以扩容到 9 台机器,整体性能会更好。

超出扩容极限,动态修改 replica 数量,9 个 shard(3 primary,6 replica),扩容到 9 台机器,比 3 台机器时,拥有 3 倍的读吞吐量。

3 台机器下,9 个 shard(3 primary,6 replica),资源更少,但是容错性更好,最多容纳 2 台机器宕机,6 个 shard 只能容纳 0 台机器宕机。

这里的这些知识点,你综合起来看,就是说,一方面告诉你扩容的原理,怎么扩容,怎么提升系统整体吞吐量;另一方面要考虑到系统的容错性,怎么保证提高容错性,让尽可能多的服务器宕机,保证数据不丢失。