Partilhar 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 uma IHostBuilder e várias classes de opção suplementares. 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 uma ClientBuilder e várias classes de opção suplementares. Como as opções de silo, as classes de opção do cliente seguem o padrão Opções no .NET.

Sugestão

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

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

Existem vários aspectos-chave da configuração do cliente:

  • Orleans informações de agrupamento
  • Fornecedor de serviços de clustering
  • Peças de aplicação

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 detalhar 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 a "my-first-cluster": Este é um ID exclusivo para o agrupamento Orleans. Todos os clientes e silos que usam esse ID podem falar diretamente uns com os outros. Alguns podem optar por usar um diferente ClusterId para cada implantação, por exemplo.
  • O ClusterOptions.ServiceId para "AspNetSampleApp": Este é um ID exclusivo para a sua aplicação, usado por alguns provedores (por exemplo, provedores de persistência). Esse ID deve permanecer estável em todas as implantações.

Fornecedor de serviços de clustering

.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 Tabela do Azure.

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

Peças de aplicação

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

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