2011-11-18 3 views
2

대기열 (IBM - MQ)에서 파일을 가져 오는 솔루션을 구현할 것입니다. 메시지는 대기열에서 제거, 처리 및 보관 (보관)해야하는 10-20 개의 서로 다른 xml 메시지입니다. 그러나 메시지에 포함 된 데이터를 DB에 저장할 때 소스 파일을 유지하려고하므로 아카이브 프로세스에서 생성 된 FileId는 메타 데이터와 함께 유지되고 저장되어야합니다.대기열에서 파일 처리, 보관 및 DB에 저장

무엇이 가장 많은 처리량을 제공하는지 알아 내려고합니다.

요구 사항 :

  1. 파일의 아카이브를 유지합니다.
  2. 메시지에서 파싱 된 데이터 (xml blob이 아님)를 저장합니다.
  3. 아카이브에서 원본 파일 ID를 유지하십시오.
  4. 규모가 커질 수있는 솔루션을 구현하십시오. 현재 시간당 40-50,000 개의 메시지가 있습니다.

기본적으로 내 병목 현상은 내 보관 프로세스 및 데이터 처리/db로드가 직렬 (보관 처리가 필요하며 XML 구문 분석 /로드를 시작하기 전에 성공해야 함)이라고 생각됩니다. ..... 이것을 성취 할 수있는 더 좋은 방법이 있는지 알지 못했습니다.

동일한 대기열에서 수신 대기하는 다른 응용 프로그램 서버를 추가 할 수 있다고 가정하고 필요한 경우 병렬로 메시지를 처리 ​​할 수 ​​있습니다. 가능한 한 적은 처리를 수행함으로써 DB를 병목 현상으로 제거하십시오 (XML blob을 DB로 보낼 ​​수는 있지만 XML 분쇄를 수행해야합니다).

+1

이 질문에 답하기 위해 우리는 XML 파일의 크기가 "처리"되어야 하는지를 알아야합니다. – Brannon

답변

0
  1. 데이터베이스에 대한 쓰기를 조정하려면 DBA와 협력하십시오.
  2. 여러 개의 읽기를 테스트하고 처리량이 더 좋은지 확인하십시오.

제 경험으로는 독자가 여러 명인 경우가 많지만 숫자는 많은 요인에 따라 다릅니다. 그것을 시험하고 베팅이 무엇인지보십시오.

관련 문제