우리는 시스템 A가 시스템 B로 데이터를 보내는 두 개의 시스템을 가지고 있습니다. 각 시스템이 다른 시스템과 독립적으로 실행될 수 있고 다른 시스템이 다운되면 둘 다 폭발 할 수없는 요구 사항이 있습니다. 문제는 디커플링 요구 사항을 충족하면서 시스템 A가 시스템 B와 통신하는 가장 좋은 방법입니다.데이터베이스가 좋은 시스템 디커플링 포인트?
시스템 B에는 현재 db 테이블의 데이터를 폴링하고 삽입 된 새 행을 처리하는 프로세스가 있습니다.
하나의 제안 된 설계는 시스템 A가 시스템 b의 db 테이블에 데이터를 삽입하고 시스템 B가 기존 프로세스로 새 행을 처리하게하는 것입니다. 문제는이 솔루션이 두 시스템의 분리 요구 사항을 충족시키는 것입니까? 데이터베이스가 사용 불가능하게되어 시스템 A를 폭발시키는 시스템 B의 일부로 간주됩니까?
또 다른 솔루션은 시스템 A가 데이터를 MQ 대기열에 넣고 MQ에서 읽은 다음 시스템 B의 데이터베이스에 삽입하는 프로세스입니다. 하지만 이것은 그냥 여분의 오버 헤드입니까? 궁극적으로 MQ 대기열이 db 테이블보다 내결함성이 있습니까?