在我的节点应用程序中,我使用“Elasticsearch
”进行数据检索。当我连接到只有一个主机时,它工作正常。
代表:
try {
elasticSearchClient = new ElasticSearchClient({
host: 'xxx.xxx.x.xxxx',
port: '9200'
});
} catch (err) {
console.log('err=' + err);
}
但是当我试图连接到多个主机(实例)时,我收到错误:
例如:
var serverOptions = {
hosts:[
{
host: 'xxx.xxx.x.xxx',
port: 9200
},{
host: 'xxx.xxx.x.xxx',
port: 9200
}]
};
elasticSearchClient = new ElasticSearchClient(serverOptions);
错误:
ECONN REFUSED: socket hang up
我正在使用“elsaticsearchclient
”节点包。请帮我解决此问题。提前致谢..
编辑:
实际上有1个主机正在运行而另一个主机已关闭。因此,当主机中的一个出现故障时,我必须重定向到另一个主机。我怎样才能实现这个目标?
答案 0 :(得分:0)
hosts
应该是一个完整网址数组。请执行以下操作:
elasticSearchClient = elasticsearch.Client({
hosts: serverOptions.hosts.map(function (server) {
return 'http://' + serverOptions.user + ':' + serverOptions.password + '@' + server.host + ':' + server.port;
})
}),