Compartilhar via


Configuração do cliente

Configure um cliente para se conectar a um cluster de silos e enviar solicitações para grãos programaticamente por meio de um IHostBuilder e várias classes de opções complementares. Assim como as opções de silo, as classes de opção do cliente seguem o padrão Opções no .NET.

Configure um cliente para se conectar a um cluster de silos e enviar solicitações para grãos programaticamente por meio de um ClientBuilder e várias classes de opções complementares. Assim como as opções de silo, as classes de opção do cliente seguem o padrão Opções no .NET.

Dica

Se você quiser apenas iniciar um silo local e um cliente local para fins de desenvolvimento, consulte a configuração de desenvolvimento local.

Adicione o pacote NuGet Microsoft.Orleans.Clustering.AzureStorage ao seu projeto de cliente.

Há vários aspectos principais da configuração do cliente:

  • Orleans informações de agrupamento
  • Provedor de agrupamento
  • Partes do aplicativo

Exemplo de uma configuração de cliente:

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();

Vamos dividir as etapas usadas neste exemplo:

Orleans informações de agrupamento

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

Aqui, definimos duas coisas:

  • O ClusterOptions.ClusterId para "my-first-cluster": Este é um ID único para o cluster Orleans. Todos os clientes e silos que usam essa ID podem se comunicar diretamente entre si. Alguns podem optar por usar um ClusterId diferente para cada implantação, por exemplo.
  • O ClusterOptions.ServiceId para "AspNetSampleApp": Este é um ID exclusivo para sua aplicação, utilizado por alguns provedores (por exemplo, provedores de persistência). Essa ID deve permanecer estável entre as implantações.

Provedor de agrupamento

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

O cliente descobre todos os gateways disponíveis no cluster usando esse provedor. Vários provedores estão disponíveis; aqui, usamos o provedor de Tabelas do Azure.

Para obter mais informações, consulte a configuração do servidor.

Partes do aplicativo

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

Para obter mais informações, consulte a configuração do servidor.