Condividi tramite


Configurazione del client

Un client per la connessione a un cluster di silo e l'invio di richieste ai grani viene configurato in modo programmatico tramite IHostBuilder e diverse classi di opzioni supplementari. Analogamente alle opzioni di silo, le classi di opzioni client seguono il modello Opzioni in .NET.

Un client per la connessione a un cluster di silo e l'invio di richieste ai grani viene configurato in modo programmatico tramite ClientBuilder e diverse classi di opzioni supplementari. Analogamente alle opzioni di silo, le classi di opzioni client seguono il modello Opzioni in .NET.

Suggerimento

Se si desidera avviare un silo locale e un client locale unicamente a scopo di sviluppo, vedere Configurazione di sviluppo locale.

Aggiungere al progetto client il pacchetto NuGet Microsoft.Orleans.Clustering.AzureStorage.

Esistono diversi aspetti importanti della configurazione client:

  • Informazioni sul clustering Orleans
  • Provider di clustering
  • Parti dell'applicazione

Esempio di una configurazione client:

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

Scomposizione dei passaggi usati in questo esempio:

Informazioni sul clustering Orleans

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

In questo caso sono stati impostati due elementi:

  • ClusterOptions.ClusterId a "my-first-cluster": è un ID univoco per il cluster Orleans. Tutti i client e i silo che usano questo ID potranno comunicare direttamente tra loro. Ad esempio, alcuni sceglieranno di usare ClusterId diversi per ogni distribuzione.
  • ClusterOptions.ServiceId a "AspNetSampleApp": è un ID univoco per l'applicazione, che verrà usato da alcuni provider (ad esempio i provider di persistenza). Questo ID deve essere stabile (non deve cambiare) tra le distribuzioni.

Provider di clustering

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

Il client rileverà tutti i gateway disponibili nel cluster tramite questo provider. Sono disponibili diversi provider, in questo esempio viene usato il provider di tabelle di Azure.

Per altre informazioni, vedere Configurazione del server.

Parti dell'applicazione

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

Per altre informazioni, vedere Configurazione del server.