在进行 ES 的配置时,首先要考虑节点数和分片数。通过实验,多节点的 ES 集群中
的节点数至少为 3,分片数为一倍的节点数量到两倍的节点数量。%
节点数和分片数相等时,每个节点负责一个分片的检索,ES 集群的性能可以达到最
优。对于一个 3 节点集群,为每个节点分配一个分片,总共 3 个分片。但是由于 ES 的不
可变性的限制,系统无法对分片进行重新拆分分配,除非重新索引这个文件集合。但是我
在三个节点的集群中再加入一个节点,这时候分片数量小于了节点数,在搜索上效率会降
低,所以为了支持水平扩展,可以为集群分配比节点数更多的分片数,也就是说每个节点
有多个分片。但是每个节点有多个分片时,需要考虑性能的问题,每个节点最好不要超过
两个分片,%
我采用了官方给默认配置中分片数目为 5,这样既可以拓展到 5 个节点,也可以保证
性能。%
我的集群的其余配置如下:%
#
节点集群名称和节点类型
%
cluster.name: yang-es-clusters%
node.name: node-3%
node.master: true%
node.data: true%
#
同个集群其他节点的信息,
ES
通过广播的方式寻找同一集群的其他节点
%
discovery.zen.ping.unicast.hosts: [ "0.0.0.0", "106.14.191.xxx",
"120.79.191.xxx"]%
#
选举主节点时需要由至少
2
个节点参与投票
%
discovery.zen.minimum_master_nodes: 2%
gateway.recover_after_nodes: 1%
#
配置本节点的
ip
,默认开发
9300
端口用于节点间
TCP
通信
%
network.host: 0.0.0.0%
network.publish_host: 106.14.227.30%
network.bind_host: 0.0.0.0%
%