国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Elasticsearch Java Low Level REST Client(執行請求)

Code4App / 1076人閱讀

摘要:執行請求一旦創建了,就可以通過調用或來發送請求,是同步的,將阻塞調用線程并在請求成功時返回,如果失敗則拋出異常。自定義響應消費者。處理返回的響應。由于通信錯誤或帶有指示錯誤的狀態碼的響應,處理返回的異常。

執行請求

一旦創建了RestClient,就可以通過調用performRequestperformRequestAsync來發送請求,performRequest是同步的,將阻塞調用線程并在請求成功時返回Response,如果失敗則拋出異常。performRequestAsync是異步的,它接受一個ResponseListener參數,它在請求成功時調用Response,如果失敗則調用Exception

這是同步的:

Request request = new Request(
    "GET",  
    "/");   
Response response = restClient.performRequest(request);

第一個參數:HTTP方法(GET,POSTHEAD等)。

第二個參數:服務器上的端點。

這是異步的:

Request request = new Request(
    "GET",  
    "/");   
restClient.performRequestAsync(request, new ResponseListener() {
    @Override
    public void onSuccess(Response response) {
        
    }

    @Override
    public void onFailure(Exception exception) {
        
    }
});

onSuccess方法:處理響應。

onFailure:處理失敗。

你可以將請求參數添加到請求對象:

request.addParameter("pretty", "true");

你可以將請求的body設置為任何HttpEntity

request.setEntity(new NStringEntity(
        "{"json":"text"}",
        ContentType.APPLICATION_JSON));
HttpEntity指定的ContentType很重要,因為它將用于設置Content-Type header,以便Elasticsearch可以正確解析內容。

你還可以將其設置為String,默認為ContentTypeapplication/json。

request.setJsonEntity("{"json":"text"}");
RequestOptions

RequestOptions類保存應在同一應用程序中的多個請求之間共享的部分請求,你可以創建單例實例并在所有請求之間共享它:

private static final RequestOptions COMMON_OPTIONS;
static {
    RequestOptions.Builder builder = RequestOptions.DEFAULT.toBuilder();
    builder.addHeader("Authorization", "Bearer " + TOKEN); 
    builder.setHttpAsyncResponseConsumerFactory(           
        new HeapBufferedResponseConsumerFactory(30 * 1024 * 1024 * 1024));
    COMMON_OPTIONS = builder.build();
}

builder.addHeader:添加所有請求所需的任何header。

builder.setHttpAsyncResponseConsumerFactory:自定義響應消費者。

addHeader用于授權或在Elasticsearch前使用代理所需的header,無需設置Content-Type header,因為客戶端將自動從附加到請求的HttpEntity設置該header。

你可以設置NodeSelector來控制哪些節點將接收請求。

NodeSelector.NOT_MASTER_ONLY是一個不錯的選擇。

你還可以自定義用于緩沖異步響應的響應消費者,默認消費者將在JVM堆上緩沖最多100MB的響應,如果響應較大,則請求將失敗。例如,如果你在堆約束環境(如上面的例子)中運行,則可以降低可能有用的最大大小。

創建單例后,你可以在發出請求時使用它:

request.setOptions(COMMON_OPTIONS);

你還可以根據請求自定義這些選項,例如,這會添加額外的header:

RequestOptions.Builder options = COMMON_OPTIONS.toBuilder();
options.addHeader("cats", "knock things off of other things");
request.setOptions(options);
多個并行異步操作

客戶端很樂意并行執行許多操作,以下示例并行索引許多文檔,在現實世界的場景中,你可能希望使用_bulk API,但示例是作例證的。

final CountDownLatch latch = new CountDownLatch(documents.length);
for (int i = 0; i < documents.length; i++) {
    Request request = new Request("PUT", "/posts/doc/" + i);
    //let"s assume that the documents are stored in an HttpEntity array
    request.setEntity(documents[i]);
    restClient.performRequestAsync(
            request,
            new ResponseListener() {
                @Override
                public void onSuccess(Response response) {
                    
                    latch.countDown();
                }

                @Override
                public void onFailure(Exception exception) {
                    
                    latch.countDown();
                }
            }
    );
}
latch.await();

onSuccess:處理返回的響應。

onFailure:由于通信錯誤或帶有指示錯誤的狀態碼的響應,處理返回的異常。

上一篇:初始化 下一篇:讀取響應

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71923.html

相關文章

  • 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(讀取響應)

    摘要:讀取響應對象由同步方法返回或作為中的參數接收,它包裝客戶端返回的響應對象并公開一些其他信息。有關執行的請求的信息。返回響應的主機。響應體包含在對象中。對于返回狀態碼的請求,不會拋出,因為它是一個預期的響應,僅表示找不到該資源。 讀取響應 Response對象由同步performRequest方法返回或作為ResponseListener#onSuccess(Response)中的參數接...

    wangxinarhat 評論0 收藏0
  • Elasticsearch Java Low Level REST Client(初始化)

    摘要:設置在多次嘗試同一請求時應該遵守的超時,默認值為秒,與默認超時相同。如果自定義超時,則應相應地調整最大重試超時。設置一個監聽器,每次節點出現故障時都會收到通知,以防需要采取措施,當啟用故障嗅探時在內部使用。 初始化 可以通過相應的RestClientBuilder類構建RestClient實例,通過RestClient#builder(HttpHost...)靜態方法創建,唯一必需的參...

    BWrong 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<