Elastic Search 7 更改了集群初始化的配置。
需要注意的重要一点是 ES 实例使用传输层 (TCP) 进行内部通信,而不是通常用于对索引执行操作的 HTTP 协议。以下是 2 台机器集群的示例配置。
cluster.name: cluster-new
node.name: node-1
node.master: true
node.data: true
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9200
transport.host: 102.123.322.211
transport.tcp.port: 9300
discovery.seed_hosts: [“102.123.322.211:9300”,"102.123.322.212:9300”]
cluster.initial_master_nodes:
- "node-1"
- "node-2”
机器 2 配置:-
cluster.name: cluster-new
node.name: node-2
node.master: true
node.data: true
bootstrap.memory_lock: true
network.host: 0.0.0.0
http.port: 9200
transport.host: 102.123.322.212
transport.tcp.port: 9300
discovery.seed_hosts: [“102.123.322.211:9300”,"102.123.322.212:9300”]
cluster.initial_master_nodes:
- "node-1"
- "node-2”
cluster.name:这对于将成为集群一部分的所有机器都是相同的。
node.name : ES 实例的标识符。如果未给出,则默认为机器名称。
node.master: 指定这个 ES 实例是否会成为 master
node.data:指定此ES实例是否将成为数据节点(保存数据)
bootsrap.memory_lock: 禁用交换。您可以在不设置此标志的情况下启动集群。但建议设置锁定。更多信息:https://www.elastic.co/guide/en/elasticsearch/reference/master/setup-configuration-memory.html
network.host: 如果您想通过网络公开 ES 实例,则为 0.0.0.0。 0.0.0.0 不同于 127.0.0.1(又名 localhost 或环回地址)。
这意味着机器上的所有 IPv4 地址。如果机器有多个 IP 地址,并且服务器在 0.0.0.0 上进行侦听,则客户端可以从任何 IPv4 地址访问机器。
http.port: ES 实例监听 HTTP 请求的端口
transport.host:主机的 IPv4 地址(这将用于与运行在不同机器上的其他 ES 实例通信)。更多信息:https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-transport.html
transport.tcp.port: 9300(机器接受tcp连接的端口)
discovery.seed_hosts:这在最近的版本中有所改变。 使用 TCP 端口(重要) 初始化将成为该集群一部分的 ES 实例的所有 IPv4 地址。这在属于该集群的所有 ES 实例中都是相同的。
cluster.initial_master_nodes: 将参与主节点选举的 ES 机器的节点名称(node.name)。(基于 Quorum 的决策:-https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery-quorums.html#modules-discovery-quorums)