다음을 통해 공유


클라이언트 구성

사일로의 클러스터에 연결하고 조직에 요청을 보내기 위한 클라이언트는 IHostBuilder 및 몇 가지 추가 옵션 클래스를 통해 프로그래밍 방식으로 구성됩니다. 사일로 옵션과 마찬가지로 클라이언트 옵션 클래스는 .NET의 옵션 패턴을 따릅니다.

사일로의 클러스터에 연결하고 조직에 요청을 보내기 위한 클라이언트는 ClientBuilder 및 몇 가지 추가 옵션 클래스를 통해 프로그래밍 방식으로 구성됩니다. 사일로 옵션과 마찬가지로 클라이언트 옵션 클래스는 .NET의 옵션 패턴을 따릅니다.

개발 목적으로 로컬 사일로 및 로컬 클라이언트를 시작하려는 경우 로컬 개발 구성을 참조하세요.

Microsoft.Orleans.Clustering.AzureStorage NuGet 패키지를 클라이언트 프로젝트에 추가합니다.

클라이언트 구성에는 다음과 같은 몇 가지 주요 측면이 있습니다.

  • Orleans 클러스터링 정보
  • 클러스터링 공급자
  • 애플리케이션 파트

클라이언트 구성의 예:

var client = new HostBuilder()
    .UseOrleansClient((context, clientBuilder) =>
    {
        clientBuilder.Configure<ClusterOptions>(options =>
        {
            options.ClusterId = "my-first-cluster";
            options.ServiceId = "MyOrleansService";
        })
        .UseAzureStorageClustering(
            options => options.ConfigureTableServiceClient(
                context.Configuration["ORLEANS_AZURE_STORAGE_CONNECTION_STRING"]));
    })
    .Build();
using Orleans.Hosting;

var client = new ClientBuilder()
    .Configure<ClusterOptions>(options =>
    {
        options.ClusterId = "my-first-cluster";
        options.ServiceId = "MyOrleansService";
    })
    .UseAzureStorageClustering(
        options => options.ConnectionString = connectionString)
    .ConfigureApplicationParts(
        parts => parts.AddApplicationPart(
            typeof(IValueGrain).Assembly))
    .Build();

이 샘플에 사용된 단계를 자세히 살펴보겠습니다.

Orleans 클러스터링 정보

    .Configure<ClusterOptions>(options =>
    {
        options.ClusterId = "orleans-docker";
        options.ServiceId = "AspNetSampleApp";
    })

여기서는 다음 두 가지를 설정합니다.

  • ClusterOptions.ClusterId"my-first-cluster"로: 이는 Orleans 클러스터의 고유 ID입니다. 이 ID를 사용하는 모든 클라이언트와 사일로는 서로 직접 통신할 수 있습니다. 일부는 예를 들어 각 배포에 대해 다른 ClusterId를 사용하도록 선택합니다.
  • ClusterOptions.ServiceId"AspNetSampleApp"으로 설정: 지속성 공급자와 같은 일부 공급자에서 사용할 애플리케이션에 대한 고유 ID입니다. 이 ID는 배포 전체에서 안정적(변경되지 않음)이어야 합니다.

클러스터링 공급자

.UseAzureStorageClustering(
    options => options.ConfigureTableServiceClient(connectionString);
.UseAzureStorageClustering(
    options => options.ConnectionString = connectionString)

클라이언트는 이 공급자를 사용하여 클러스터에서 사용할 수 있는 모든 게이트웨이를 검색합니다. 여러 공급자를 사용할 수 있습니다. 이 샘플에서는 Azure Table 공급자를 사용합니다.

자세한 내용은 서버 구성을 참조하세요.

애플리케이션 파트

.ConfigureApplicationParts(
    parts => parts.AddApplicationPart(
        typeof(IValueGrain).Assembly))
        .WithReferences())

자세한 내용은 서버 구성을 참조하세요.