如何设置Elasticsearch客户端节点?

时间:2015-11-18 20:13:54

标签: elasticsearch

我有几个关于客户端节点的Elasticsearch问题:

  1. 我可以说:任何节点,只要他们打开HTTP端口,我就可以将它们视为"客户端"节点,因为我们可以通过这个节点进行搜索/索引。

  2. 实际上我们在cluster=falsedata=false时将节点视为客户端节点,如果我设置了10个客户端节点,我是否需要在客户端路由,我的意思是如果我在我的代码中将 clientOne:9200 指定为ES门户,然后 clientOne 将其他HTTP请求转发给其他客户端节点,否则 clientOne 将在压力很大。即它们是否在客户端节点之间相互通信?

  3. 当我在ES群集中​​指定客户端节点时,是否应关闭其他节点' HTTP端口?因为我们只能查询客户端节点。

  4. 您是否认为在同一台机器中设置数据节点和客户机节点是必要的,或者只是设置数据节点也充当客户机节点,无论如何它都在同一台机器上机

  5. 如果ES群集在搜索次数较少/经常被索引的情况下,那么我就不必设置客户端节点,因为客户端节点很适合收集数据,对吗?

    < / LI>
  6. 对于一般的搜索/索引目的,我应该使用http端口还是tcp端口,请问客户视角的差异是什么?

1 个答案:

答案 0 :(得分:20)

  1. 是的,您可以通过http向任何端口9200打开的节点发送查询。

  2. 使用node.data:false和node.master:false,您将得到一个&#34; client node&#34;。这些对于从数据节点卸载索引和搜索流量非常有用。如果您有10个,则需要在其前面放置负载均衡器。

  3. 关闭数据节点的http端口(http.enabled:false)会阻止他们提供客户端请求(可能很好),但这也会阻止您直接卷曲它们统计数据等

  4. 客户端节点很有用(参见#2),因此我不会将流量直接路由到您的数据节点。是否在同一块硬件上运行客户端和数据节点将取决于该机器的配置(您是否有足够的RAM等)。

  5. 客户端节点对索引也很有用,因为它们知道哪个数据节点应该接收要存储的数据。如果您将索引请求发送到随机数据节点,则将该请求重定向到另一个节点的几率很高。如果您可以创建客户端节点,那将浪费时间和资源。

  6. 让您的客户加入群集可能会让他们访问有关群集的更多信息,但使用http可以为他们提供更通用的黑盒子&#34;接口。使用http,您也不必让您的客户端与ES节点保持相同的版本。

  7. 希望有所帮助。