하나의 코드에서 mysql, redis, mongodb가 동시에 작동됩니다. 어떻게 하면 이러한 데이터베이스 간의 데이터 일관성을 보장할 수 있을까요?
예를 들어 msyql은 필드 A를 저장하고, redis는 필드 B를 저장하고, mongodb는 필드 C를 저장합니다. ABC가 동시에 성공하거나 실패하도록 어떻게 보장할 수 있나요
하나의 코드에서 mysql, redis, mongodb가 동시에 작동됩니다. 어떻게 하면 이러한 데이터베이스 간의 데이터 일관성을 보장할 수 있을까요?
예를 들어 msyql은 필드 A를 저장하고, redis는 필드 B를 저장하고, mongodb는 필드 C를 저장합니다. ABC가 동시에 성공하거나 실패하도록 어떻게 보장할 수 있나요
작업이 동시에 이루어지더라도 각 데이터베이스는 다르게 처리되며 모두 성공한다는 보장은 없습니다.
세 가지 프로세스가 모두 성공하면 최종 성공으로 간주할 수 있습니다. 하나라도 실패하면 실패로 간주됩니다.
이 설정이 맞나요?
redis와 mysql 트랜잭션을 삽입하기 전에 트랜잭션을 시작하면 함께 커밋하고 롤백하는 것이 성공한다고 생각합니다.
세 가지 유형의 데이터베이스가 관련되어 있으므로 각 데이터베이스의 강력한 일관성을 보장하기 위해 기성 XA 프로토콜이 없어야 합니다. 따라서 차선책을 선택하고 최종 일관성을 보장할 수 있습니다.
분산 트랜잭션 1
분산 트랜잭션 2