2017-12-26 1 views
0

I (1 개 실행을위한 세부 사항) 다음을 수행합니다 (봄 부팅 및 스프링 배치로) 자바 8 개 일괄 처리를 만들 수 있습니다자바 스프링 부팅 + 스프링 배치 : 프로세스 엄청난 양의 정보

  • 가져 오기 5 개의 다른 쿼리를 실행해야하는 것으로 보이는 N 개의 다른 정보 소스 (3 개의 웹 서비스, 3 개의 다른 데이터베이스)의 정보는 약 14 가지 서비스 방법으로 호출합니다. 나는 정보의 양이 약 50 만에서 1,000,000 개의 정보 데이터가 합계로 처리 될 것이라고 계산했다.
  • 정보 처리 (간단한 수학적 계산이지만 이전 정보를 모두 사용할 수 있어야합니다.)
  • 배수 계산을하십시오.
  • 결과를 데이터베이스에 저장하십시오. 하루 중 특정 시간 (다른 기본 데이터와 다른 실행에서 동시에 23 번 실행하는 과정을하게됩니다

이 프로세스는 특정 입력 데이터에 의존, 점점 또는 처리의 측면에서 아무런 문제가 없습니다 정보는 일반적인 정보가 아니기 때문에).

내가 보는 문제는 궁극적으로 계산을 수행하기 위해 조작해야하는 정보량과 관련이 있으며 정보를 어떻게 그리고 어디서 조작해야하는지 명확하지 않습니다. 일부 옵션은 다음과 같습니다.

  • 자바로 직접 : JVM (Stackoverflow 등)의 성능 문제가있을 수 있으므로이 옵션이 아닌 것으로 알고 있습니다.
  • no SQL 데이터베이스 사용 : 확실하지 않지만 흥미로울 수 있습니다.
  • 캐시 시스템 : 확실하지 않지만 흥미로울 수 있습니다.
  • 일부 DB에 대한 임시 테이블 :이 옵션은 저에게 흥미로 보였습니다. 임시 테이블에 전체 정보 집합을 삽입하고 쿼리를 사용하여 최종 결과를 얻는 동일한 계산을 수행 할 수있었습니다.

정보 세트를 조작하는 데 사용할 수있는 대안이나 시스템에 대한 아이디어가 있습니까?

감사합니다.

+0

이 질문은 너무 광범위합니다. 예 : 1M 정수 jvm에 대해서는 ** 아무런 문제가 없습니다 **, 당신은 1 초도 안되는 양의 데이터에 대해 화려한 계산을 할 수 있습니다. 성능에 대해 걱정하기 전에 적어도 한 번은 더 튼튼하거나 그렇지 않은지를 확인하기 위해 구현하십시오. 그런 다음 당신은 돌아와서 당신이 가지고있는 데이터와 당신이 고투하고있는 곳을 더 자세하게 설명 할 수 있습니다. – luk2302

+0

문제는 검색된 정보가 기본 유형이 아니며, 모두 저장해야하는 복잡한 객체라는 점입니다. 즉, 1,000,000 개를 넘는 크기의 목록을 가지고 있고 그 이상을 처리하는 것이 최적이 아니므로 걱정하지 않습니다. 문제가 생겼다. – mgi1985

+0

"복잡한 개체"당 1000 바이트를 사용하더라도 1GB의 RAM 사용이 발생합니다 ("아무것도 아님").필자의 말은 : 성능 문제가 아직 없다면 성과 조언을하는 것이 절대 불가능합니다. 왜냐하면 지금은 당신이 원하는 것을 말하고 더 잘 수행 할 필요가 없기 때문입니다. – luk2302

답변

0

Apache Camel을 사용할 수도 있습니다. 그것은 귀하의 모든 요구 사항을 다루고 다른 구성 요소가 있습니다 web service call/JPASQL

낙타 데이터의 큰 금액을 처리 할 수 ​​있으며이 streamingsplit 같이이 작업을 쉽게 할 몇 가지 멋진 기능을 제공합니다.

+0

그게 재미있는 aproach, 감사합니다! – mgi1985

관련 문제