Partilhar via


Configuração do cliente

Um cliente para se conectar a um cluster de silos e enviar solicitações para grãos é configurado 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.

Um cliente para se conectar a um cluster de silos e enviar solicitações para grãos é configurado 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.

Gorjeta

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 NuGet pacote para o projeto cliente.

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

  • Orleans informações de agrupamento
  • Provedor 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 to "my-first-cluster": este é um ID exclusivo para o Orleans cluster. Todos os clientes e silos que usam esse ID poderão falar diretamente uns com os outros. Alguns optarão por usar um diferente ClusterId para cada implantação, por exemplo.
  • o ClusterOptions.ServiceId to "AspNetSampleApp": este é um ID exclusivo para o seu aplicativo, que será usado por algum provedor (por exemplo, para provedores de persistência). Esse ID deve ser estável (não alterado) entre implantações.

Provedor de clustering

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

O cliente descobrirá todos os gateways disponíveis no cluster usando esse provedor. Vários provedores estão disponíveis, aqui neste exemplo 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.