2013-03-16 2 views
0

Twitter에서 정보를 다운로드하고 처리하기 위해 Java 플랫폼을 개발해야합니다. 기본 개념은 작업 (ID 및 키워드를 기본적으로 생성)을 생성하고 원격 작업자 (컴퓨터 당 하나)에게이 작업을 전송하는 중앙 집중식 컨트롤러를 갖추는 것입니다. 나는 작업 표와 작업자 모두의 상태를 알기 위해 주기적으로 상태 보고서를 받아야합니다. 나는 적어도 60 명의 근로자 (가까운 장래에 10 배 이상)를 가질 것입니다.원격 작업자 간의 프로세스 워크 플로 나누기

초기 생각은 RMI를 사용하는 것이지만 양방향으로 통신해야하며 RMI에 익숙하지 않습니다. 다른 방법은 직렬화 된 객체를 보내기 위해 SSLSockets를 사용하는 것이었지만 많은 오류를 제어하고 많은 코드를 추가하여 작업과 작업자를 모니터링해야했습니다. 어떤 사람들은 Spring Batch, Gigaspaces 또는 Quartz과 같은 프레임 워크를 사용한다고 말했습니다.

이 프로젝트에서 가장 좋은 옵션은 무엇이라고 생각하십니까? 당분간 나는 Gigaspaces에 관한 많은 좋은 것들을 읽었지만 그것을 구현하는 방법에 대한 좋은 지침서를 찾지는 못했고 Quartz는 유망한 것으로 보인다. 어떻게 생각해? 그 중 하나를 사용하여 가치가 있습니까?

답변

0

귀하의 질문에 기반한 기술에 대해 이야기하는 것은 쉽지 않습니다. GigaSpaces는 확실히 일에 달렸지 만 Spring Batch도 그렇습니다. 석영은 질문의 스케줄링 부분 일 뿐이고 원격 작업 및 작업량 분배가 아닙니다.

GigaSpaces는 병렬 처리, 높은 처리량 및 확장 성이 중요한 시나리오를 처리 할 수있는 완전한 플랫폼입니다. Spring Batch는 확실히 일을 할 수 있지만 GigaSpaces와는 달리 애플리케이션 플랫폼이 아닙니다. 따라서 어플리 케이션을 어딘가에 배치해야합니다.

그러나 GigaSpaces는 상업용 제품 (무료 버전)이지만 Storm Project (http://storm-project.net/) 및 Hazelcast (www.hazelcast.com)와 같은 다른 프레임 워크가 도움이 될 수 있습니다.

유스 케이스를 명확히하지 않으면 단일 답변을 제시하기가 어렵습니다. 그것은 모두 당신이 원하는 것과 그것이 현재, 미래에 그것을 어떻게 사용하고 싶은지에 달려 있습니다.

관련 문제