如何设置Elasticsearch客户端节点?

Jac*_*ack 10 elasticsearch

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

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

  2. 其实我们对待节点客户端节点时cluster=falsedata=false,如果我设立了10个客户节点,我需要在我的客户端的路线,我的意思是如果我指定clientOne:9200在我的代码为ES门户网站,然后将clientOne着其他HTTP请求到其他客户端节点,否则,clientOne将承受很大的压力.即他们是否在客户端节点之间相互通信?

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

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

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

  6. 对于一般的搜索/索引目的,我应该使用http端口还是tcp端口,请问客户角度有什么区别?

Ala*_*ins 21

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

  2. 使用node.data:false和node.master:false,您将获得" 客户端节点 ".这些对于从数据节点卸载索引和搜索流量非常有用.如果你有10个,你可能想要在它们前面放置一个负载平衡器.

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

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

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

  6. 让您的客户端加入群集可能会让他们访问有关群集的更多信息,但使用http会为他们提供更通用的"黑匣子"界面.使用http,您也不必将客户端与ES节点保持相同的版本.

希望有所帮助.