Delen via


Clientconfiguratie

Een client voor het maken van verbinding met een cluster silo's en het verzenden van aanvragen naar korrels wordt programmatisch geconfigureerd via een IHostBuilder en verschillende aanvullende optieklassen. Net als silo-opties volgen clientoptieklassen het patroon Opties in .NET.

Een client voor het maken van verbinding met een cluster silo's en het verzenden van aanvragen naar korrels wordt programmatisch geconfigureerd via een ClientBuilder en verschillende aanvullende optieklassen. Net als silo-opties volgen clientoptieklassen het patroon Opties in .NET.

Tip

Als u alleen een lokale silo en een lokale client wilt starten voor ontwikkelingsdoeleinden, raadpleegt u de configuratie van lokale ontwikkeling.

Voeg microsoft toe.Orleans Clustering.AzureStorage NuGet-pakket voor het clientproject.

Er zijn verschillende belangrijke aspecten van clientconfiguratie:

  • Orleans clusteringinformatie
  • Clusteringprovider
  • Toepassingsonderdelen

Voorbeeld van een clientconfiguratie:

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();

Laten we de stappen uitsplitsen die in dit voorbeeld worden gebruikt:

Orleans clusteringinformatie

    .Configure<ClusterOptions>(options =>
    {
        options.ClusterId = "orleans-docker";
        options.ServiceId = "AspNetSampleApp";
    })

Hier stellen we twee dingen in:

  • "my-first-cluster"aanClusterOptions.ClusterId: dit is een unieke id voor het Orleans cluster. Alle clients en silo's die deze id gebruiken, kunnen rechtstreeks met elkaar communiceren. Sommigen kiezen er bijvoorbeeld voor om een andere ClusterId te gebruiken voor elke implementatie.
  • de ClusterOptions.ServiceId aan "AspNetSampleApp": dit is een unieke id voor uw toepassing, die wordt gebruikt door een bepaalde provider (bijvoorbeeld voor persistentieproviders). Deze id moet stabiel zijn (niet gewijzigd) in implementaties.

Clusteringprovider

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

De client detecteert alle gateways die beschikbaar zijn in het cluster met behulp van deze provider. Er zijn verschillende providers beschikbaar. In dit voorbeeld gebruiken we de Azure Table-provider.

Zie Serverconfiguratie voor meer informatie.

Toepassingsonderdelen

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

Zie Serverconfiguratie voor meer informatie.