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 diferenteClusterId
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.