我有一个代码库来连接弹性搜索(localhost:9200)以进行全文搜索功能。我们在负载均衡服务器下的两台不同的机器(m1和m2)上部署了此代码。在这种情况下,如何在两台不同的机器中配置ES以连接ES和索引应该反映双方。
我正在使用Elasticsearch v 5.1.2
机器1
cluster.name: production
node.name: database
机器2
cluster.name: production
node.name: app
以上设置适用于ES v 1.7.1
**问题?
我应该采取什么配置才能使其在ES v5.1.2上运行?
请帮我解决这个问题。
提前致谢
答案 0 :(得分:1)
我假设这些节点不是同一群集的一部分。
尝试http://MACHINE_1_IP:9200/_cat/nodes?v并检查是否所有节点都列为群集的一部分。
如果他们不是 - 只是一个快速的猜测,你看过network.host setting?它默认绑定到本地循环(可能是2 +中引入的东西)
答案 1 :(得分:0)
这可以通过使用网络模块设置(ref)来解决。 通过保留相同的群集名称和不同的节点名称来更新两个应用服务器上的elasticsearch.yml
EX:
的Server_1
更新elasticseach.yml
cluster.name: Production
node.name: APP
network.host: [server_1_IP, _local_]
discovery.zen.ping.unicast.hosts: [server_1_IP, server_2_IP]
在Server_2上
更新elasticseach.yml
cluster.name: Production
node.name: DB
network.host: [server_2_IP, _local_]
discovery.zen.ping.unicast.hosts: [server_1_IP, server_2_IP]