摘要:設(shè)置在多次嘗試同一請求時應(yīng)該遵守的超時,默認值為秒,與默認超時相同。如果自定義超時,則應(yīng)相應(yīng)地調(diào)整最大重試超時。設(shè)置一個監(jiān)聽器,每次節(jié)點出現(xiàn)故障時都會收到通知,以防需要采取措施,當啟用故障嗅探時在內(nèi)部使用。
初始化
可以通過相應(yīng)的RestClientBuilder類構(gòu)建RestClient實例,通過RestClient#builder(HttpHost...)靜態(tài)方法創(chuàng)建,唯一必需的參數(shù)是客戶端將與之通信的一個或多個主機,作為HttpHost的實例提供,如下所示:
RestClient restClient = RestClient.builder( new HttpHost("localhost", 9200, "http"), new HttpHost("localhost", 9201, "http")).build();
RestClient類是線程安全的,理想情況下與使用它的應(yīng)用程序具有相同的生命周期,重要的是不再需要時關(guān)閉它,以便它所使用的所有資源得到正確釋放,以及底層的http客戶端實例及其線程:
restClient.close();
RestClientBuilder還允許在構(gòu)建RestClient實例時可選地設(shè)置以下配置參數(shù):
RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http")); Header[] defaultHeaders = new Header[]{new BasicHeader("header", "value")}; builder.setDefaultHeaders(defaultHeaders);
設(shè)置需要隨每個請求一起發(fā)送的默認headers,以防止必須為每個請求指定它們。
RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http")); builder.setMaxRetryTimeoutMillis(10000);
設(shè)置在多次嘗試同一請求時應(yīng)該遵守的超時,默認值為30秒,與默認socket超時相同。如果自定義socket超時,則應(yīng)相應(yīng)地調(diào)整最大重試超時。
RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http")); builder.setFailureListener(new RestClient.FailureListener() { @Override public void onFailure(Node node) { } });
設(shè)置一個監(jiān)聽器,每次節(jié)點出現(xiàn)故障時都會收到通知,以防需要采取措施,當啟用故障嗅探時在內(nèi)部使用。
RestClientBuilder builder = RestClient.builder(new HttpHost("localhost", 9200, "http")); builder.setNodeSelector(NodeSelector.SKIP_DEDICATED_MASTERS);
設(shè)置用于過濾節(jié)點的節(jié)點選擇器,客戶端將發(fā)送請求到設(shè)置給客戶端本身的節(jié)點之一,這有助于防止在啟用嗅探時向?qū)S弥鞴?jié)點發(fā)送請求,默認情況下,客戶端向每個配置的節(jié)點發(fā)送請求。
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); } });
設(shè)置允許修改默認請求配置的回調(diào)(例如請求超時,身份驗證或org.apache.http.client.config.RequestConfig.Builder允許設(shè)置的任何內(nèi)容)。
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")); } });
設(shè)置允許修改http客戶端配置的回調(diào)(例如通過ssl進行加密通信,或者org.apache.http.impl.nio.client.HttpAsyncClientBuilder允許設(shè)置的任何內(nèi)容)。
上一篇:Java Low Level REST Client 入門 下一篇:執(zhí)行請求文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/71896.html
摘要:入門本節(jié)描述從獲取工件到在應(yīng)用程序中使用它如何開始使用低級別客戶端。倉庫低級別客戶端托管在上,所需的最低版本是。請注意,對進行也會產(chǎn)生影響,例如,對圖層進行意味著第三方日志記錄后端也需要。 Java Low Level REST Client 入門 本節(jié)描述從獲取工件到在應(yīng)用程序中使用它如何開始使用低級別REST客戶端。 Javadoc 可以在https://artifacts.ela...
摘要:用于的官方高級別客戶端,基于低級別客戶端,它公開特定的方法,并負責(zé)請求編組和響應(yīng)反編組。入門初始化執(zhí)行請求讀取響應(yīng)日志記錄通用配置嗅探器在中被添加。依賴于核心項目,它接受與相同的請求參數(shù),并返回相同的響應(yīng)對象。 Elasticsearch Java REST Client Java REST Client有兩種類型: Java Low Level REST Client:用于Elast...
摘要:嗅探器允許從正在運行的集群中自動發(fā)現(xiàn)節(jié)點并將它們設(shè)置到現(xiàn)有的實例的最小的庫,它默認使用節(jié)點信息檢索屬于集群的節(jié)點,并使用解析獲得的響應(yīng)??梢栽谡业娇蛻舳诵崽狡鞯?。 嗅探器 允許從正在運行的Elasticsearch集群中自動發(fā)現(xiàn)節(jié)點并將它們設(shè)置到現(xiàn)有的RestClient實例的最小的庫,它默認使用節(jié)點信息api檢索屬于集群的節(jié)點,并使用jackson解析獲得的json響應(yīng)。 與Elas...
閱讀 2485·2021-11-25 09:43
閱讀 3541·2021-10-25 09:48
閱讀 1429·2021-09-13 10:24
閱讀 2817·2019-08-29 15:07
閱讀 1361·2019-08-29 13:14
閱讀 3350·2019-08-29 12:22
閱讀 1437·2019-08-29 11:32
閱讀 3336·2019-08-29 11:23