2012-07-22 2 views
0

오히려 개념적 질문이 있습니다. 나는 너무 일반적이거나 너무 어리 석다 고 생각하지 않을 것입니다.대기열 기반 시스템에서 소비자 실패를 처리하는 방법은 무엇입니까?

데이터 항목이 많은 단계 (예 : 단계 1 - CSV 파일 생성 및 보고서 생성, 2 단계 - 이전 단계에서 생성 된 보고서를 기반으로 한 보고서 실행 등), 영구적 인 대기열을 사용하여 처리가 구현되어 새로운 원시 파일이 발견되면 메시지가 상기 파일을 처리하도록 요청하는 큐. 메시지는 파일을 처리하는 소비자가 선택하고 처리의 다음 단계 등을 위해 작업 결과를 대기열에 넣는 또 다른 메시지를 넣습니다.

제 질문은 -이 프로세스에서 오류를 처리하는 모범 사례는 무엇입니까? 1 단계의 소비자가 완전히 실패했다고 가정 해 보겠습니다.

대기열 기반 아키텍처에서 이러한 일괄 처리를 구현하는 것이 모든 논리/효율적입니까?

답변

1

예, 큐는 그냥 나중에 전체 파일을 재 처리 할 수 ​​있기 때문에이 경우 (문제가있는 파일과 기록에 완전한 실패가 쉬운 경우가 있음을

참고 메시지를 넣어 할 위치 당신은 또한 오류 큐를 필요로 확인됩니다 일시적인 문제 였거나 파일을 무시했습니다 (오류가있는 경우). 더 심각한 문제는 일부 레코드가 문제가있는 부분적인 실패입니다.

한 단계에서 오류가 발생하면 다른 단계를 어떤 방식 으로든 실행 취소해야한다는 의미이므로이를 구현하려면 saga으로보고 싶을 수 있습니다. 프로세스를보다 세밀하게 제어하려는 경우 오케스트레이션을 고려할 수 있습니다.

관련 문제