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
最新推荐文章于 2023-03-31 22:37:09 发布