Configuração do cliente
Um cliente para se conectar a um cluster de silos e enviar solicitações para granularidades é configurado programaticamente por meio de uma IHostBuilder e de várias classes de opção complementares. Assim 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 granularidades é configurado programaticamente por meio de uma ClientBuilder e de várias classes de opção 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 Configuração de desenvolvimento local.
Adicione o pacote NuGet Microsoft.Orleans.Clustering.AzureStorage ao projeto cliente.
Há vários aspectos principais da configuração do cliente:
- Informações de clustering do Orleans
- Provedor de clustering
- 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 detalhar as etapas usadas neste exemplo:
Informações de clustering do Orleans
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "orleans-docker";
options.ServiceId = "AspNetSampleApp";
})
Aqui definimos duas coisas:
- a ClusterOptions.ClusterId para
"my-first-cluster"
: esta é uma ID exclusiva para o cluster do Orleans. Todos os clientes e o silo que usa essa ID poderão conversar diretamente entre si. Alguns optarão por usar umClusterId
diferente para cada implantação, por exemplo. - a ClusterOptions.ServiceId para
"AspNetSampleApp"
: esta é uma ID exclusiva para seu aplicativo, que será usada por algum provedor (por exemplo, provedores de persistência). Essa ID deve ser estável (não alterar) 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.
Partes do aplicativo
.ConfigureApplicationParts(
parts => parts.AddApplicationPart(
typeof(IValueGrain).Assembly))
.WithReferences())
Para obter mais informações, consulte Configuração do servidor.