【问题标题】:What's the difference between bind_host and publish_host in ElasticSearch?ElasticSearch 中的 bind_host 和 publish_host 有什么区别?
【发布时间】:2014-06-05 15:01:04
【问题描述】:

从这个文档network settings,我知道publish_host 是集群中其他节点将与之通信的主机。但是我不明白bind_host的功能,意思是:

network.bind_host 设置允许控制不同网络组件绑定的主机。默认情况下,绑定主机将为 anyLocalAddress(通常为 0.0.0.0 或 ::0)。

network.host 会将 network.bind_hostnetwork.publish_host 设置为相同的值。

所以我想知道为什么需要设置 network.bind_host 以及是否可以设置 network.bind_hostnetwork.publish_host > 到不同的值?

【问题讨论】:

    标签: networking elasticsearch


    【解决方案1】:

    可以将它们设置为不同的值,并且在某些情况下非常有用。这是我的用法:

    我在数据中心有一个本地网络,我在其中运行由不同节点组成的 elasticsearch 集群。这意味着每台 elasticsearch 机器都有两个 IP 地址,一个用于从外部机器访问它,另一个用于本地连接到同一网络中的其他机器。

    内部IP(eth1)用于让elasticsearch的不同节点相互通信,发现等,外部IP地址(eth0)是​​我在另一个网络中的Web应用程序发出请求的地址至。

    简单来说,bind_host(在我的例子中都是 ip,与附加所有接口的默认值 0.0.0.0 相同)是 elasticsearch 监听的地方,而 publish_host(在我的例子中是内部 ip)是 elasticsearch 与其他集群组件通信的地方.

    这样,我的web应用在另一个网络,可以从bind_host地址访问ES集群,而elasticsearch通过publish_host与集群通信。

    【讨论】:

      【解决方案2】:

      以下设置应该可以解决问题。它接受来自任何 IP(绑定)的连接,并将其自身 ip 配置为第一个可用网络接口中的第一个 non_loopback。

      network.bind_host: "0.0.0.0"
      network.publish_host: _non_loopback:ipv4_
      

      要查看更多选项,请查看docs

      【讨论】:

      【解决方案3】:

      据我了解,打个电话打个比方:

      • publish_host 表示:“用这个号码给我打电话”
      • bind_host 表示:“我会回答这个号码”

      publish_host: _non_loopback:ipv4_ 可以理解为:“无论我从哪个号码呼叫您,都可以拨打我的电话”

      【讨论】:

        【解决方案4】:

        bind_host 设置控制 Elasticsearch 监听的网络接口。因此,在具有多个 NIC 的机器上,这将允许您控制将绑定到哪个 ES。默认的 0.0.0.0 基本上意味着“绑定到所有”。

        publish_host 设置控制 Elasticsearch 向其他成员公布的 IP 地址。这必须是一个实际的 IP 地址,并且是其他集群成员用来与 ES 节点通信的地址。

        如果您需要在多宿主服务器上执行一些特殊操作,您可以将 bind_host 和 publish_host 设置为不同的值。大多数用例不需要,因此 network.host 设置控制两者。

        【讨论】:

          【解决方案5】:

          通过 API 检查该值:

          curl http://ES:9200/_cat/master
          

          注意主机名将被解析(所以永远不会暴露)。

          【讨论】:

            猜你喜欢
            • 2015-03-03
            • 1970-01-01
            • 1970-01-01
            • 2014-11-30
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-02-15
            • 2019-03-07
            相关资源
            最近更新 更多