Elasticsearch Java Low Level REST Client(初始化)

初始化

能够经过相应的RestClientBuilder类构建RestClient实例,经过RestClient#builder(HttpHost...)静态方法建立,惟一必需的参数是客户端将与之通讯的一个或多个主机,做为HttpHost的实例提供,以下所示:html

RestClient restClient = RestClient.builder(
        new HttpHost("localhost", 9200, "http"),
        new HttpHost("localhost", 9201, "http")).build();

RestClient类是线程安全的,理想状况下与使用它的应用程序具备相同的生命周期,重要的是再也不须要时关闭它,以便它所使用的全部资源获得正确释放,以及底层的http客户端实例及其线程:node

restClient.close();

RestClientBuilder还容许在构建RestClient实例时可选地设置如下配置参数:apache

RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http"));
Header[] defaultHeaders = new Header[]{new BasicHeader("header", "value")};
builder.setDefaultHeaders(defaultHeaders);

设置须要随每一个请求一块儿发送的默认headers,以防止必须为每一个请求指定它们。segmentfault

RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http"));
builder.setMaxRetryTimeoutMillis(10000);

设置在屡次尝试同一请求时应该遵照的超时,默认值为30秒,与默认socket超时相同。若是自定义socket超时,则应相应地调整最大重试超时。api

RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http"));
builder.setFailureListener(new RestClient.FailureListener() {
    @Override
    public void onFailure(Node node) {
        
    }
});

设置一个监听器,每次节点出现故障时都会收到通知,以防须要采起措施,当启用故障嗅探时在内部使用。安全

RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http"));
builder.setNodeSelector(NodeSelector.SKIP_DEDICATED_MASTERS);

设置用于过滤节点的节点选择器,客户端将发送请求到设置给客户端自己的节点之一,这有助于防止在启用嗅探时向专用主节点发送请求,默认状况下,客户端向每一个配置的节点发送请求。socket

RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http"));
builder.setRequestConfigCallback(new RestClientBuilder.RequestConfigCallback() {
    @Override
    public RequestConfig.Builder customizeRequestConfig(RequestConfig.Builder requestConfigBuilder) {
        return requestConfigBuilder.setSocketTimeout(10000); 
    }
});

设置容许修改默认请求配置的回调(例如请求超时,身份验证或org.apache.http.client.config.RequestConfig.Builder容许设置的任何内容)。async

RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http"));
builder.setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
    @Override
    public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
        return httpClientBuilder.setProxy(new HttpHost("proxy", 9000, "http"));  
    }
});

设置容许修改http客户端配置的回调(例如经过ssl进行加密通讯,或者org.apache.http.impl.nio.client.HttpAsyncClientBuilder容许设置的任何内容)。ide


上一篇:Java Low Level REST Client 入门

下一篇:执行请求

相关文章
相关标签/搜索