다중 클러스터 지원

v2에서 다중 클러스터 지원이 제거되었습니다. 아래 설명서는 Orleans v1을 참조합니다. Orleans v.1.3.0은 여러 Orleans 클러스터를 단일 서비스 역할을 하는 느슨하게 연결된 다중 클러스터로 페더레이션하는 지원을 추가했습니다. 다중 클러스터는 서비스로서의 지리적 배포를 용이하게 합니다. 즉, 전 세계 여러 데이터 센터에서 Orleans 애플리케이션을 더 쉽게 실행할 수 있습니다. 또한 단일 데이터 센터 내에서 다중 클러스터를 실행하여 오류 및 성능 격리를 향상시킬 수 있습니다.

모든 메커니즘은 다음 사항에 특히 주의하여 설계되었습니다.

  1. 클러스터 간 통신을 최소화합니다.
  2. 다른 클러스터가 실패하거나 연결할 수 없는 경우에도 각 클러스터를 자율적으로 실행하도록 합니다.

구성 및 작업

아래에서는 다중 클러스터를 구성하고 운영하는 방법을 설명합니다.

커뮤니케이션. 클러스터는 클러스터 내에서 사용되는 것과 동일한 사일로-사일로 연결을 통해 통신합니다. 클러스터는 상태 및 구성 정보를 교환하기 위해 가십 메커니즘 및 가십 채널 구현을 사용합니다.

사일로 구성. 사일로가 속한 클러스터를 알 수 있도록 구성해야 합니다(각 클러스터는 고유한 문자열로 식별됨). 또한 시작 시 하나 이상의 가십 채널에 연결할 수 있도록 각 사일로를 연결 문자열로 구성해야 합니다.

다중 클러스터 구성 주입. 런타임 시 서비스 운영자는 클러스터 ID 목록을 포함하는 다중 클러스터 구성을 지정 및/또는 변경하여 현재 다중 클러스터의 일부인 클러스터를 지정할 수 있습니다. 이 작업은 클러스터 중 하나에서 관리 조직을 호출하여 수행됩니다.

다중 클러스터 조직

아래에서는 애플리케이션 수준에서 다중 클러스터 기능을 사용하는 방법을 설명합니다.

글로벌 단일 인스턴스 조직. 개발자는 클러스터가 특정 조직 클래스와 관련하여 조직 디렉터리를 언제 어떻게 조정해야 하는지 나타낼 수 있습니다. GlobalSingleInstanceAttribute는 단일 글로벌 클러스터에서 Orleans를 실행할 때와 동일한 동작을 원한다는 것을 뜻합니다. 즉, 모든 호출을 조직의 단일 활성화로 라우팅합니다. 반대로 OneInstancePerClusterAttribute는 각 클러스터가 독립적인 활성화를 가질 수 있음을 나타냅니다. 이는 클러스터 간 통신을 원치 않는 경우에 적합합니다.

로그 보기 조직(v.1.3.0에 없음). 조직 상태를 동기화하거나 유지하기 위해 이벤트 소싱과 유사한 새 API를 사용하는 특수한 형식의 조직입니다. 클러스터와 스토리지 간의 조직 상태를 자동으로 효율적으로 동기화하는 데 사용할 수 있습니다. 동기화 알고리즘은 재진입 조직과 함께 사용하기에 안전하며 일괄 처리 및 복제를 사용하도록 최적화되어 있기 때문에 조직이 여러 클러스터에서 자주 액세스되는 경우 및/또는 스토리지에 자주 기록되는 경우 표준 조직보다 더 나은 성능을 발휘할 수 있습니다. 로그 보기 조직에 대한 지원은 아직 주 분기의 일부가 아닙니다. geo-orleans 분기에 샘플 및 약간의 설명서가 포함된 시험판이 있습니다. 현재 얼리어답터에 의해 프로덕션에서 평가되고 있습니다.