2017-10-14 8 views
0

다른 응용 프로그램에서 메시지를 넣을 대기열이 하나 있는데 응용 프로그램에서 대기열을 폴링하고 모든 메시지를 가져 와서 다른 객체로 변환하고 데이터베이스에 보관합니다. 그래서이 두 가지 접근 방법이 있습니다 1. 스프링 스케줄러를 사용하고 모든 메시지를 5 초마다 폴링 한 다음 java 8의 병렬 스트림을 사용하여 모든 스트림이 독립적 인 데이터베이스를 유지합니다. 2.) 스프링 배치를 사용하도록 제안 된 사람이 있지만 힘든 행운인데 스프링 배치 사용에 대한 충분한 설명이 없습니다.자바 8 병렬 스트림과 스프링 배치 사이의 비교

설명이 도움이 될만한 제안을 던져 줄 수 있습니까? 예를 들어 어느 것이 유용하고 더 좋을 수 있습니까?

+0

제목에 설명되어있는 실제 내용과 제목이 어떻게 연결되어 있습니까? – Eugene

+0

그럼 스프링 배치 (spring batch) 병렬 처리와 schedular 및 java 8 병렬 스트림을 사용하여 비교를합니다. –

답변

0

옵션 1을 이해하고 있다고 생각합니다. 옵션 2는 스프링 배치를 사용하여 아래에서 설명을 찾습니다.

스프링을 사용하고 있기 때문에 스프링 배치 솔루션을 사용할 수 있습니다. 모든 단계가 명확하게 유지되고 평행주의와 페이지 크기를 사용할 수 있습니다. 실적을 향상시킬 수 있습니다.

  1. 독자 : 당신의 큐
  2. 프로세서를 읽어 공정 데이터
  3. 작가 : 여기 당신이 당신의 배치 크기를 말할 수있는 데이터베이스에 기록.

여러 단계를, 또는 이러한 작업 각각에 대해, 다중 프로세서, 그리고 작가와 청취자 (당신은 단지 하나에서 읽을 수있는 큐가 있지만) 여러 소스에서 읽을 수 있습니다. 예 : 청취자가 대기열에서 수신 대기하도록 할 수 있습니다. 그리고 많은 유용한 설정들이 있습니다. link

물론 스프링 배치에 대한 훌륭한 문서와 지원이 있습니다.

비록 내가 스프링의 큰 팬이라해도, 당신이 매우 간단하고 읽기 쉬운 응용 프로그램이라면 다른 프레임 워크를 사용하고 싶지 않을 것입니다. 스프링 배치를 사용할 수는 없습니다.

+0

간단한 읽기 및 쓰기 작업을위한 스프링 배치 프레임 워크가 적합하지 않을 수 있습니다. –

+0

정확한 읽기 쓰기 작업을 위해 엔지니어가 필요하지 않을 수 있습니다. 규칙 기반 처리, 다중 단계 작업 및 복잡한 일괄 처리의 경우 스프링 배치가 매우 쉽고 유지 관리 기능이 뛰어납니다. – surya

0

간단한 조작을 위해 스프링 배치를 사용할 필요가 없습니다.