ES批量提交-RestHighLevelClient

引包:

            <dependency>
                <groupId>org.elasticsearch.client</groupId>
                <artifactId>elasticsearch-rest-high-level-client</artifactId>
                <version>6.8.13</version>
            </dependency>

批量提交: 


import org.apache.commons.lang3.RandomStringUtils;
import org.apache.http.HttpHost;
import org.elasticsearch.action.bulk.BulkRequest;
import org.elasticsearch.action.bulk.BulkResponse;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestClientBuilder;
import org.elasticsearch.client.RestHighLevelClient;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Test {
    
    private static RestHighLevelClient restClient;

    public static void main(String[] args) {

        RestClientBuilder builder = RestClient.builder(
//                new HttpHost("21.145.229.153",9200,"http"),
//                new HttpHost("21.145.229.253",9200,"http"),
                new HttpHost("192.168.0.1", 9200, "http"));
//        CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
//        credentialsProvider .setCredentials(AuthScope.ANY,new UsernamePasswordCredentials("elastic","1qaz!QAZ"));
//        builder.setHttpClientConfigCallback(f->f.setDefaultCredentialsProvider(credentialsProvider ));
        restClient = new RestHighLevelClient(builder);

        /**
         * 造点假数据
         */
        List<Map<String, Object>> list = new ArrayList<>();
        for (int i = 0; i < 100; i++) {
            Map<String, Object> map = new HashMap<>();
            map.put("message", RandomStringUtils.randomAlphanumeric(28));
            map.put("user", RandomStringUtils.randomAlphanumeric(8));
            map.put("postDate", new Date());
            list.add(map);
        }
        /**
         * 批量从插入数据
         */
        BulkRequest request = new BulkRequest();
        for (int j = 0; j < list.size(); j++) {
            Map<String, Object> item = list.get(j);
            request.add(new IndexRequest("TestIndex", "TestType").source(item));
        }
        try {
            BulkResponse bulk = restClient.bulk(request, RequestOptions.DEFAULT);
            if (bulk.status().getStatus() == 200) {
                System.out.println("批量插入成功!");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}

 

2025-08-29 20:02:00,016 ERROR [][I/O dispatcher 6][search.client.ElasticSearchClient$1 158] Insert failed org.elasticsearch.ElasticsearchStatusException: Elasticsearch exception [type=es_rejected_execution_exception, reason=rejected execution of org.elasticsearch .action.bulk.TransportBulkAction$1$1@4392fa63 on EsThreadPoolExecutor[name = cmp-192.168.0.163\/write, queue capacity = 10000, org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@1ff8f46d[Running, pool size = 16, active threads = 16, queued tasks = 1000 0, completed tasks = 46579255]]] at org.elasticsearch.rest.BytesRestResponse.errorFromXContent(BytesRestResponse.java:187) ~[elasticsearch-1.0.2-c7.10.2-htrunk1.jar:1.0.2-c7.10.2-htrunk1] at org.elasticsearch.client.RestHighLevelClient.parseEntity(RestHighLevelClient.java:1911) ~[elasticsearch-rest-high-level-client-1.0.2-c7.10.2-htrunk1.jar:1.0.2-c7.10.2-htrunk1] at org.elasticsearch.client.RestHighLevelClient.parseResponseException(RestHighLevelClient.java:1888) ~[elasticsearch-rest-high-level-client-1.0.2-c7.10.2-htrunk1.jar:1.0.2-c7.10.2-htrunk1] at org.elasticsearch.client.RestHighLevelClient$1.onFailure(RestHighLevelClient.java:1804) [elasticsearch-rest-high-level-client-1.0.2-c7.10.2-htrunk1.jar:1.0.2-c7.10.2-htrunk1] at org.elasticsearch.client.RestClient$FailureTrackingResponseListener.onDefinitiveFailure(RestClient.java:644) [elasticsearch-rest-client-1.0.2-c7.10.2-htrunk1.jar:1.0.2-c7.10.2-htrunk1] at org.elasticsearch.client.RestClient$1.completed(RestClient.java:386) [elasticsearch-rest-client-1.0.2-c7.10.2-htrunk1.jar:1.0.2-c7.10.2-htrunk1] at org.elasticsearch.client.RestClient$1.completed(RestClient.java:370) [elasticsearch-rest-client-1.0.2-c7.10.2-htrunk1.jar:1.0.2-c7.10.2-htrunk1] at org.apache.http.concurrent.BasicFuture.completed(BasicFuture.java:122) [httpcore-4.4.15.jar:4.4.15] at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.responseCompleted(DefaultClientExchangeHandlerImpl.java:181) [httpasyncclient-4.1.4.jar:4.1.4] at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.processResponse(HttpAsyncRequestExecutor.java:448) [httpcore-nio-4.4.15.jar:4.4.15] at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.inputReady(HttpAsyncRequestExecutor.java:338) [httpcore-nio-4.4.15.jar:4.4.15] at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:265) [httpcore-nio-4.4.15.jar:4.4.15] at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:81) [httpasyncclient-4.1.4.jar:4.1.4] at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:39) [httpasyncclient-4.1.4.jar:4.1.4] at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114) [httpcore-nio-4.4.15.jar:4.4.15] at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162) [httpcore-nio-4.4.15.jar:4.4.15] at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337) [httpcore-nio-4.4.15.jar:4.4.15] at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315) [httpcore-nio-4.4.15.jar:4.4.15] at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276) [httpcore-nio-4.4.15.jar:4.4.15] at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104) [httpcore-nio-4.4.15.jar:4.4.15] at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:591) [httpcore-nio-4.4.15.jar:4.4.15] at java.lang.Thread.run(Thread.java:750) [?:1.8.0_452] Suppressed: org.elasticsearch.client.ResponseException: method [POST], host [http://192.168.0.163:7300], URI [/_bulk?timeout=1m], status line [HTTP/1.1 429 Too Many Requests] Warnings: [Parameter [doc_values] has no effect on type [text] and will be removed in future] {"error":{"root_cause":[{"type":"es_rejected_execution_exception","reason":"rejected execution of org.elasticsearch.action.bulk.TransportBulkAction$1$1@4392fa63 on EsThreadPoolExecutor[name = cmp-192.168.0.163/write, queue capacity = 10000, org.elasticsearch.comm on.util.concurrent.EsThreadPoolExecutor@1ff8f46d[Running, pool size = 16, active threads = 16, queued tasks = 10000, completed tasks = 46579255]]"}],"type":"es_rejected_execution_exception","reason":"rejected execution of org.elasticsearch.action.bulk.TransportBu lkAction$1$1@4392fa63 on EsThreadPoolExecutor[name = cmp-192.168.0.163/write, queue capacity = 10000, org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor@1ff8f46d[Running, pool size = 16, active threads = 16, queued tasks = 10000, completed tasks = 4657 9255]]"},"status":429}
最新发布
08-30
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值