资讯专栏INFORMATION COLUMN

Elasticsearch Java Low Level REST Client(初始化)

BWrong / 2358人阅读

摘要:设置在多次尝试同一请求时应该遵守的超时,默认值为秒,与默认超时相同。如果自定义超时,则应相应地调整最大重试超时。设置一个监听器,每次节点出现故障时都会收到通知,以防需要采取措施,当启用故障嗅探时在内部使用。

初始化

可以通过相应的RestClientBuilder类构建RestClient实例,通过RestClient#builder(HttpHost...)静态方法创建,唯一必需的参数是客户端将与之通信的一个或多个主机,作为HttpHost的实例提供,如下所示:

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

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

restClient.close();

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

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

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

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

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

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);

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

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允许设置的任何内容)。

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允许设置的任何内容)。

上一篇:Java Low Level REST Client 入门 下一篇:执行请求

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71896.html

相关文章

  • Elasticsearch Java Low Level REST Client(入门)

    摘要:入门本节描述从获取工件到在应用程序中使用它如何开始使用低级别客户端。仓库低级别客户端托管在上,所需的最低版本是。请注意,对进行也会产生影响,例如,对图层进行意味着第三方日志记录后端也需要。 Java Low Level REST Client 入门 本节描述从获取工件到在应用程序中使用它如何开始使用低级别REST客户端。 Javadoc 可以在https://artifacts.ela...

    Achilles 评论0 收藏0
  • Elasticsearch Java REST Client(目录)

    摘要:用于的官方高级别客户端,基于低级别客户端,它公开特定的方法,并负责请求编组和响应反编组。入门初始化执行请求读取响应日志记录通用配置嗅探器在中被添加。依赖于核心项目,它接受与相同的请求参数,并返回相同的响应对象。 Elasticsearch Java REST Client Java REST Client有两种类型: Java Low Level REST Client:用于Elast...

    roland_reed 评论0 收藏0
  • Elasticsearch Java Low Level REST Client(嗅探器)

    摘要:嗅探器允许从正在运行的集群中自动发现节点并将它们设置到现有的实例的最小的库,它默认使用节点信息检索属于集群的节点,并使用解析获得的响应。可以在找到客户端嗅探器的。 嗅探器 允许从正在运行的Elasticsearch集群中自动发现节点并将它们设置到现有的RestClient实例的最小的库,它默认使用节点信息api检索属于集群的节点,并使用jackson解析获得的json响应。 与Elas...

    hiYoHoo 评论0 收藏0

发表评论

0条评论

BWrong

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<