2016-10-26 3 views
0

내 목록에 2000 개의 항목이 있으며이 목록을 대량 요청 인 API로 elasticsearch에 삽입하려고합니다. 같은 코드를 찾으십시오.elasticSearch에 목록을 삽입하는 응용 프로그램의 성능을 향상시키는 방법은 무엇입니까?

 for(Car car : carList){ 
      elasticSearchService.addOrganization(car,"Car"); 
     } 

Code for ElasticSearch Service 

     @Autowired 
     private Client esClient; 

     private void addOrganization(Object object, String modelName){ 
       Gson gson = new Gson(); 
       final String json = gson.toJson(object); 
       esClient.prepareIndex("ElasticSearchIndex",modelName).setSource(json).execute().actionGet(); 
     } 

I have made following entry in elasticsearch.yml file 
threadpool: 
    index: 
     size: 250 
     queue_size: 1000 

우리가 JMeter를 통해 응용 프로그램의 성능을 모니터링하고, 우리는 우리의 응용 프로그램을 연결하고 우리가 esClient에 connectionpool을이 task.Can을 위해 약 10 초 정도 소요 elasticsearch 에 데이터를 넣어 2000 HTTP 요청을 생성하는 것을 발견 또는 elasticsearch 서버에서 구성을 수행하여 응용 프로그램의 성능을 향상시킬 수있는 방법이 있습니까? 응답 시간이 최대 3 초까지 단축됩니까?

+0

색인 생성을 시도 했습니까? 샤드 (전체 데이터가 더 빠른 액세스를 위해 배포 됨)를 사용하여 데이터를 배포 했습니까? 여러 개의 노드 (동일한 데이터 - 중복성 및 빠른 액세스)를 제공 했습니까? 튜닝 질문 같아. 당신은 당신의 성능 엔지니어에게이 질문을해야합니다. –

+0

우리는 위에서 언급했듯이 스레드 풀을 늘리려고했지만 성능이 향상되지 않고 샤드를 늘리거나 줄이면 아무런 결과가 나지 않습니다. – Vrushali

+0

100, 200, 300, 400 ... 900, 1000과 같은 단계로 하중을 넣으십시오. .... 2000 등 (원하는 경우 단일 테스트에서 Stepping ThreadGroup, https://jmeter-plugins.org/wiki/SteppingThreadGroup/)을 사용하십시오. 그래서, 어떤 하중, 응답 시간이 임계 값을 초과하는지 (예 : 언급 한 3 초) 명확한 아이디어를 갖게됩니다. 이를 토대로 인프라 스트럭처의 확장/축소 또는 기존 배치의 재검토 여부를 결정할 수 있습니다. –

답변

0

당신은 대량 요청 말하고되지만를 사용하지 않을 : 더 가지고 documentation를 참조

@Autowired 
private Client esClient; 

private void addOrganizations(List<Object> objects, String modelName){ 
    BulkRequestBuilder bulkRequest = client.prepareBulk(); 
    objects.forEach(object -> { 
     Gson gson = new Gson(); 
     final String json = gson.toJson(object); 
     bulkRequest.add(esClient.prepareIndex("ElasticSearchIndex",modelName).setSource(json)); 
    }); 
    bulkRequest.get(); 
} 

:

elasticSearchService.addOrganizations(carList,"Car"); 

그리고 당신의 ElasticSearch 서비스 코드 :

가 코드를 변경

정보.

+0

감사합니다 Pandawan. 이 코드는 내 응용 프로그램에서 작동했습니다. – Vrushali

관련 문제