0

Camel을 처음 사용하고 Camel 경로에서 대상 시스템의 가용성을 관리하기위한 패턴이나 전략을 찾고 있습니다.낙타 및 소스/대상 시스템 사용 전략

예를 들어

, 내가 원하는 말 : - 파일 서버 에서 입력 데이터를 읽기 - 공정 데이터 (데이터 -> targetData) - 나머지 서비스를 사용하여 대상 웹 사이트로 대상 데이터 (TargetData를) 보내 (TargetSystem이라고 부름)

TargetSytem이 다운 된 경우 가장 좋은 전략은 무엇입니까?

경로가 실패하면 전체 프로세스를 롤백 할 수 있다는 것을 알고 있습니다. 그러나 TargetSystem이 외부 시스템이고 몇 시간 동안 중단 될 수있는 경우 대상 시스템이 작동 될 때까지 프로세스를 롤백하지 않는 것이 좋은 방법이라고 생각하지 않습니다.

이 문제와 잘 어울리는 패턴이나 전략이 있습니까?

감사

질은

답변

0

이것은 내가 시스템의 부부와 함께 사용하는 패턴이다.

  • 어딘가에 당신의 TargetData (데이터베이스 테이블, JMS 큐, 레디 스, ...)는
    • 만약 여기서 targetsystem을 보내지 않은 TargetData 읽고 로 전송 경로를 만들기 지속 전송이 정상이면 TargetData을 적절히 표시하십시오 (예 : 테이블 행에 플래그를 설정하고 대기열에서 제거 등)
  • 타이머 및/또는 다른 경로에서 주기적으로 그러한 경로를 트리거하십시오. 쉘 명령을 사용하여이를 트리거하여 보내지 않은 데이터의 재전송을 수동으로 "강제 실행"할 수도 있습니다.

당신은 여러분의 필요에이를 사용자 지정하고 각 시험 보내기가 실패 횟수, 발생하면 적절한 예를 들어, 로깅을 추가 DB 테이블에 추적 할 수 있습니다 얼마나 많은 시도 등등 ...

는 이제이 개 모듈에서 응용 프로그램을 모듈화 할 수 데이터를 수신 한 공정을 TargetData의 전송 여기서 targetsystem을 관리 TargetData와 다른.
모듈은 2 개의 CamelContextes, 2 개의 OSGi 번들, 완전히 분리 된 2 개의 Java 응용 프로그램을 의미 할 수 있습니다.