public static String DEFAULT_INDEX = "archser";
private String scheme;
private int port;
private String host;
public String INDEX = DEFAULT_INDEX;
public static final String TYPE = "_doc";
static final String TEMPLATE_TEMPLATE_MAP_KEY = "_TEMPLATE_TEMPLATE_MAP_";
public static RequestOptions DEFAULT_OPTIONS;
private String name;
private static RestClientBuilder clientBuilder = null;
private static RestHighLevelClient restHighLevelClient = null;
/**
* 初始化RequestOptions,如果设置了es登陆用户密码将用户信息写入header
*/
static {
RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder();
String user = PropKit.get("es.user", "");
String password = PropKit.get("es.password", "");
String scheme = PropKit.get("es.http", "http");
Integer port = PropKit.getInt("es.port",9200);
String host = PropKit.get("es.host");
if ("".equals(user) || "".equals(password)) {
DEFAULT_OPTIONS = RequestOptions.DEFAULT;
} else {
builder.addHeader("Authorization",
"Basic " + Base64.getUrlEncoder().encodeToString((user + ":" + password).getBytes()));
RequestOptions ops = builder.build();
DEFAULT_OPTIONS = ops;
}
clientBuilder = RestClient.builder(new HttpHost(host, port, scheme))
.setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback() {
// 该方法接收一个RequestConfig.Builder对象,对该对象进行修改后然后返回。
@Override
public RequestConfig.Builder customizeRequestConfig(
RequestConfig.Builder requestConfigBuilder) {
return requestConfigBuilder.setConnectTimeout(5000 * 1000) // 连接超时(默认为1秒)
.setSocketTimeout(6000 * 1000);// 套接字超时(默认为30秒)//更改客户端的超时限制默认30秒现在改为100*1000分钟
}
}).setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
@Override
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
// TODO Auto-generated method stub
return httpClientBuilder.setDefaultIOReactorConfig(
IOReactorConfig.custom()
.setIoThreadCount(1)
.build());
}
});;
// 将es用户信息写入请求头
Header[] defaultHeaders = new Header[] {new BasicHeader("Authorization",
"Basic " + Base64.getUrlEncoder().encodeToString((user + ":" + password).getBytes()))};
clientBuilder.setDefaultHeaders(defaultHeaders);
restHighLevelClient = new RestHighLevelClient(clientBuilder);
}
ElasticSearch JAVA创建client
JavaES客户端配置与初始化
最新推荐文章于 2025-10-25 22:41:22 发布
该代码段展示了如何初始化一个JavaElasticsearch客户端,包括设置默认的RequestOptions,处理ES的用户名和密码,以及调整连接和套接字超时时间。同时,它还创建了RestHighLevelClient实例,并配置了HTTP头和IO线程数。
594

被折叠的 条评论
为什么被折叠?



