愚者求师之过,智者从师之长。

ES rest client怎么停止自动发现服务端机器

Elasticsearch | 作者 blackprint | 发布于2017年06月16日 | 阅读数:5504

公司使用ES5.2.2版本,5台机器构建的ES集群,对外挂了个LVS,设置了一个域名 abc:5500,希望业务访问通过abc这个域名,这样ES集群自身的增减对业务不产生任何影响。但是目前发现,当LVS去掉ES里某台机器时,业务本身还是能连到去掉的那台机器上。我们怀疑是不是因为ES 的rest客户端是长连接的原因?不知道应该怎么避免这种情况,以及改后是否会对性能有影响?希望有朋友能帮忙解答

我们的业务创建ES客户端的代码如下:
httphost = "abc.5500';
RestClient client =
RestClient.builder(httphost)
.setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback() {
@Override
public RequestConfig.Builder customizeRequestConfig(
RequestConfig.Builder requestConfigBuilder) {
return requestConfigBuilder.setConnectTimeout(connTimeout1)
.setSocketTimeout(readTimeout1);
}
}).setMaxRetryTimeoutMillis(retryTimeout1).build();

执行查询的代码如下:
response = client.performRequest("GET", path.toString(), params);
已邀请:

blackprint

赞同来自:

求知

medcl - 今晚打老虎。

赞同来自:

首先不要有公网地址能访问到es,不安全。
es的RESTclient会自动嗅探集群节点,不过你代码里面好像没有使用,你的LVS是DR模式么?
LVS使用NAT模式,只能通过lvs代理访问,业务直接连不上es的节点。

要回复问题请先登录注册