Klientkonfiguration
En klient för att ansluta till ett kluster med silor och skicka begäranden till korn konfigureras programmatiskt via en IHostBuilder och flera kompletterande alternativklasser. Precis som siloalternativ följer klientalternativklasserna mönstret Alternativ i .NET.
En klient för att ansluta till ett kluster med silor och skicka begäranden till korn konfigureras programmatiskt via en ClientBuilder och flera kompletterande alternativklasser. Precis som siloalternativ följer klientalternativklasserna mönstret Alternativ i .NET.
Dricks
Om du bara vill starta en lokal silo och en lokal klient i utvecklingssyfte kan du läsa Konfiguration av lokal utveckling.
Lägg till Microsoft.Orleans. Clustering.AzureStorage NuGet-paket till klientprojektet.
Det finns flera viktiga aspekter av klientkonfigurationen:
- Orleans klustringsinformation
- Klusterprovider
- Programdelar
Exempel på en klientkonfiguration:
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();
Nu ska vi gå vidare med de steg som används i det här exemplet:
Orleans klustringsinformation
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "orleans-docker";
options.ServiceId = "AspNetSampleApp";
})
Här anger vi två saker:
- till ClusterOptions.ClusterId
"my-first-cluster"
: detta är ett unikt ID för Orleans klustret. Alla klienter och silo som använder detta ID kommer att kunna kommunicera direkt med varandra. Vissa väljer till exempel att använda olikaClusterId
distributioner. - till ClusterOptions.ServiceId
"AspNetSampleApp"
: detta är ett unikt ID för ditt program som används av någon leverantör (till exempel för beständighetsproviders). Det här ID:t ska vara stabilt (inte ändras) mellan distributioner.
Klusterprovider
.UseAzureStorageClustering(
options => options.ConfigureTableServiceClient(connectionString);
.UseAzureStorageClustering(
options => options.ConnectionString = connectionString)
Klienten identifierar alla gatewayer som är tillgängliga i klustret med hjälp av den här providern. Flera leverantörer är tillgängliga, här i det här exemplet använder vi Azure Table-providern.
Mer information finns i Serverkonfiguration.
Programdelar
.ConfigureApplicationParts(
parts => parts.AddApplicationPart(
typeof(IValueGrain).Assembly))
.WithReferences())
Mer information finns i Serverkonfiguration.