무엇 분산되어 트랜잭션

이러한 요구가있다 :

제이미가에 위치한 두 개의 계정을 가지고, B 두 개의 데이터베이스는 샤오 밍은에서의 B에 자금을해야합니다.

우리는 어떻게 달성합니까?

다음과 같은 방법을 달성하기 위해 문제가있는 경우를 참조하십시오.

  1. 데이터베이스 연결 (A)는, 연결 connA을 취득
  2. connA 열린 트랜잭션
  3. 라이브러리 펀드는 100 감소
  4. 링크 라이브러리 B, connB 연결을 취득
  5. connB 열린 트랜잭션
  6. B (100)의 증가 라이브러리 자금
  7. connA.commit ()
  8. connB.commit ()

위의 동작은, 일반적으로 아무 문제가 없다.

7 단계가 성공하면, 네트워크 문제는, 8 단계는이 시간에 결과가 제출 실패 : 자금이 100 감소 라이브러리를, B 라이브러리 자금이 증가하지 않은, 그것은 네트워크 문제는 우리의 사업의 실패로 이끄는 것입니다 네트워크 요소는 제어 할 수없는 요인 프로그램뿐만 아니라 7 후에 실행되어 같은 다른 시스템 전원이 갑자기 동일한 결과가 발생할 수있다. 비즈니스에 미치는 영향에 데이터 오류의 결과로 상대적으로 크다.

 분산 트랜잭션이 이해 될 수있다 : 비즈니스 작업을 여러 하위 작업을 포함, 각 하위 사업은 별도의 우리가 고려해야 거래, 이러한 작업이 성공적 자녀, 또는 실패했는지 확인하는 방법입니다.

 

궁극적 인 일관성은 무엇입니까?

, 프로 시저 B는 자본 라이브러리 B의 증가없이 결과, 라이브러리를 분리 connB 네트워크 문제로 인해 위의 전송, 라이브러리가 감소 자본을 가지고, 네트워크가 복원되면 네트워크 문제는 복원 할 수있는 시스템이 있습니다 B 플러스 수도 위해, 최종 데이터가 올 수 있도록 상기 라이브러리 자금의 중간 부분이 일치 AB 이번에 ( 100 라이브러리의 감소, 100 B 라이브러리는 일관성 데이터의 증가없이 증가한다 ),하지만 결국 어떤 점은 시간에 데이터가 일관성이된다. 시간 불일치 문제를 최소화 할 수 있어야하면 시스템이 고려 될 필요가있다 .

분산 트랜잭션, 우리는 특정 기간 내에 일치하지 않는 데이터를 받아 들일 수 있지만, 어떤 점에서 최종 데이터가 일치한다.

 

https://www.cnblogs.com/itsoku123/p/10875203.html

 

추천

출처www.cnblogs.com/ywsheng/p/11262102.html