다음을 통해 공유


호환되는 조직

기존 조직 활성화가 요청을 처리하려고 할 때 런타임은 요청의 버전과 조직의 실제 버전이 호환되는지 확인합니다. Orleans(은)는 사용할 정책을 런타임에 유추하지 않습니다. 두 버전이 호환되는지 확인하는 기본 동작은 Orleans.Versions.Compatibility.CompatibilityStrategy에 의해 결정됩니다.

이전 버전과 호환(기본값)

정의

다음과 같은 경우 조직 인터페이스 버전 Vn이 Vm과 역호환될 수 있습니다.

  • 인터페이스의 이름이 변경되지 않았습니다(또는 재정의된 형식 코드).
  • Vm 버전에 있는 모든 공용 메서드가 Vn 버전에 있습니다. Vm에서 상속된 메서드의 서명은 수정되지 않는 것이 중요합니다. Orleans(이)가 내부 기본 제공 직렬 변환기를 사용하기 때문에 필드(프라이빗 까지)를 수정/변경하면 serialization이 중단될 수 있습니다.

Vn은 Vm과 다르게 메서드를 추가할 수 있으므로 Vm은 Vn과 호환되지 않습니다.

예시

클러스터에 V1 및 V2라는 지정된 인터페이스의 두 가지 버전이 있고, 해당 V2가 V1과 역호환되는 경우:

  • 현재 활성화가 V2이고 요청된 버전이 V1인 경우 현재 활성화는 요청을 정상적으로 처리할 수 있습니다.
  • 현재 활성화가 V1이고 요청된 버전이 V2인 경우 현재 활성화가 비활성화되고 V2와 호환되는 새 활성화가 만들어집니다(버전 선택기 전략 참조).

완전 호환

정의

다음과 같은 경우 조직 인터페이스 버전 Vn은 Vm과 완전 호환될 수 있습니다.

  • Vn이 Vm과 역호환되는 경우
  • Vn 버전에 공용 메서드가 추가되지 않은 경우

Vn이 Vm과 완전 호환되고 Vm도 Vn과 완전 호환되는 경우

예시

클러스터에 V1 및 V2라는 지정된 인터페이스의 두 가지 버전이 있고, 해당 V2가 V1과 완전 호환되는 경우:

  • 현재 활성화가 V2이고 요청된 버전이 V1인 경우 현재 활성화는 요청을 정상적으로 처리할 수 있습니다.
  • 현재 활성화가 V1이고 요청된 버전이 V2인 경우 현재 활성화는 요청을 정상적으로 처리할 수 있습니다.