在elasticsearch中使用多个节点客户端

Ana*_*avi 11 scaling elasticsearch

我正试图想办法扩展我们的弹性搜索设置.人们是否在Elasticsearch集群上使用多个节点客户端,并将它们放在负载均衡器/反向代理(如Nginx)之前.其他想法会很棒.

Joh*_*one 27

因此,我首先重新设置您可以在Elasticsearch中配置的三种不同类型的节点:

  • 数据节点 - node.data设置为true,node.master设置为false - 这些是存储数据的elasticsearch集群的核心节点.

  • 专用主节点 - node.data设置为false,node.master设置为true - 这些负责管理集群状态.

  • 客户端节点 - node.data设置为false,node.master设置为
    false - 这些响应客户端数据请求,查询
    数据节点的结果并收集数据以返回客户端.

通过将功能拆分为3种不同的基本节点类型,您可以在管理群集规模时获得很大的粒度和控制.由于每个节点类型处理一组更加孤立的职责,因此您可以更好地调整每个节点并进行适当缩放.

对于数据节点,它是处理索引和查询响应的功能,同时确保为每个节点分配足够的存储空间.您需要监视每个节点的存储使用情况和磁盘吞吐量,以及CPU和内存使用情况.您希望避免磁盘用完或磁盘吞吐量饱和的配置,同时仍然有大量过多的CPU和内存,或者反过来,内存和CPU最大但你有很多磁盘可用.确定这一点的最佳方法是通过典型索引和查询活动的一些基准测试.

对于主节点,您应始终至少有3个,并且应始终具有奇数.仲裁应设置为N/2 + 1,其中N是主节点的数量.这样您就不会遇到群集的裂脑问题.专用主节点往往不会负载很重,因此可能非常小.

对于客户端节点,您确实可以将它们置于负载均衡器之后,或使用dns条目指向它们.只需向群集添加更多内容即可轻松扩展和缩小它们,并且应该为冗余添加它们,并且当您看到cpu和内存使用率攀升时.不需要很多磁盘.

无论你的配置是什么,除了提前对可能的负载进行基准测试外,我强烈建议密切监控cpu,内存和磁盘 - ES很容易开始推出,但是当你扩展到大量的事务时它确实需要观察更多节点.由于内存或磁盘耗尽导致的节点故障而处理黄色或红色状态群集并不是很有趣.

我将仔细阅读本文的一些背景知识:

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-node.html

加上这一系列文章:

http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/distributed-cluster.html