Orleans 2.0 공식 문서 - 4.9.6 Grains -> 이벤트 소스-> 이벤트 소스의 구성

5733 단어 Orleans
프로비저닝
프로젝트 참조 구성
grain 인터페이스
이전과 마찬가지로 인터페이스는 Microsoft.Orleans.Core 패키지에만 의존한다. 왜냐하면grain 인터페이스는 독립적으로 실현되기 때문이다.
grain의 실현
JournaledGrains는 JournaledGrain 또는 JournaledGrain 가방에서 정의된 것을 계승해야 한다.
로그 일치성 공급자
현재 상태 저장소, 로그 저장소, 사용자 정의 저장소에 사용되는 세 개의 로그 일치성 제공 프로그램이 포함되어 있습니다.이 세 개는 모두 Microsoft.Orleans.EventSourcing 가방에 포함되어 있다.따라서 모든 Journaled Grains는 이 세 개의 제공 프로그램에 접근할 수 있다.이러한 제공 프로그램의 기능과 차이에 대한 설명은 포함된 로그 일치성 제공 프로그램을 참조하십시오.
클러스터 구성
로그 Consistency Provider 구성은 다른 Orleans Provider와 동일합니다.예를 들어, 세 개의 Provider를 모두 포함시키려면(물론 세 개 모두 필요하지 않을 수도 있음) 프로파일의 Microsoft.Orleans.EventSourcing 요소에 추가합니다.
<LogConsistencyProviders>
  <Provider Type="Orleans.EventSourcing.StateStorage.LogConsistencyProvider" Name="StateStorage" />
  <Provider Type="Orleans.EventSourcing.LogStorage.LogConsistencyProvider" Name="LogStorage" />
  <Provider Type="Orleans.EventSourcing.CustomStorage.LogConsistencyProvider" Name="CustomStorage" />
LogConsistencyProviders>

프로그래밍 방식을 통해 같은 목적을 실현할 수 있다.항목에 패키지가 포함되고 Microsoft.Orleans.EventSourcingconfig 객체라고 가정합니다.
using Orleans.Runtime.Configuration; // pick up the necessary extension methods

config.AddLogStorageBasedLogConsistencyProvider("LogStorage");
config.AddStateStorageBasedLogConsistencyProvider("StateStorage");
config.AddCustomStorageBasedLogConsistencyProvider("CustomStorage");

grain 클래스의 속성
모든 Journaledgrain 클래스는 로그 일치성 공급자를 지정하기 위해 ClusterConfiguration 속성을 가지고 있어야 합니다.일부 제공 프로그램은 LogConsistencyProvider 속성을 구해야 한다.
LogConsistencyProvider 속성
로그 일치성 공급자를 지정하려면grain 클래스에 StorageProvider 속성을 추가하고 Cluster의 설정에 따라 공급자의 이름을 입력하십시오.예를 들면 다음과 같습니다.
[LogConsistencyProvider(ProviderName = "CustomStorage")]
public class ChatGrain : JournaledGrain<XDocument, IChatEvent>, IChatGrain, ICustomStorage { ... }

StorageProvider 속성
표준 StorageProvider를 사용하여 스토리지와 통신하는 표준 StorageProvider[LogConsistencyProvider(ProviderName=...)]와 같은 로그 일관성 제공 프로그램다음과 같이 별도의 LogStorage 속성을 사용하여 제공자를 지정합니다.
[LogConsistencyProvider(ProviderName = "LogStorage")]
[StorageProvider(ProviderName = "AzureBlobStorage")]
public class ChatGrain : JournaledGrain<XDocument, IChatEvent>, IChatGrain { ... }

기본 공급자
기본값을 구성에 지정하면 StateStorage 및/또는 StorageProvider 속성을 생략할 수 있습니다.이것은 각자의 제공 프로그램의 특수 명칭LogConsistencyProvider을 사용하여 완성된 것이다.예를 들면 다음과 같습니다.
<LogConsistencyProviders>
  <Provider Type="Orleans.EventSourcing.LogStorage.LogConsistencyProvider" Name="Default" />
LogConsistencyProviders>
<StorageProviders>
  <Provider Type="Orleans.Storage.MemoryStorage" Name="Default" />
StorageProviders>

좋은 웹페이지 즐겨찾기