Teilen über


Clientkonfiguration

Ein Client zum Herstellen einer Verbindung mit einem Silocluster und zum Senden von Anforderungen an Grains wird programmgesteuert über einen IHostBuilder und mehrere zusätzliche Optionsklassen konfiguriert. Clientoptionsklassen folgen wie Silooptionen dem Muster „Optionen“ in .NET.

Ein Client zum Herstellen einer Verbindung mit einem Silocluster und zum Senden von Anforderungen an Grains wird programmgesteuert über einen ClientBuilder und mehrere zusätzliche Optionsklassen konfiguriert. Clientoptionsklassen folgen wie Silooptionen dem Muster „Optionen“ in .NET.

Tipp

Wenn Sie nur ein lokales Silo und einen lokalen Client zu Entwicklungszwecken starten möchten, finden Sie weitere Informationen unter Konfiguration der lokalen Entwicklung.

Fügen Sie das NuGet-Paket Microsoft.Orleans.Clustering.AzureStorage dem Clientprojekt hinzu.

Es gibt mehrere wichtige Aspekte bei der Clientkonfiguration:

  • Orleans-Clusteringinformationen
  • Clusteringanbieter
  • Teile der Anwendung

Beispiel für eine Clientkonfiguration:

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

Sehen wir uns die in diesem Beispiel verwendeten Schritte genauer an:

Orleans-Clusteringinformationen

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

Hier legen wir zwei Dinge fest:

  • die ClusterOptions.ClusterId auf "my-first-cluster": Dies ist eine eindeutige ID für den Orleans-Cluster. Alle Clients und Silos, die diese ID verwenden, können direkt miteinander kommunizieren. Einige verwenden beispielsweise für jede Bereitstellung eine andere ClusterId.
  • die ClusterOptions.ServiceId auf "AspNetSampleApp": Dies ist eine eindeutige ID für Ihre Anwendung, die von einigen Anbietern (z. B. Persistenzanbietern) verwendet wird. Diese ID sollte in allen Bereitstellungen stabil sein (nicht geändert werden).

Clusteringanbieter

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

Der Client ermittelt mithilfe dieses Anbieters alle im Cluster verfügbaren Gateways. Es stehen mehrere Anbieter zur Verfügung. In diesem Beispiel verwenden wir den Azure-Tabellenanbieter.

Weitere Informationen finden Sie unter Serverkonfiguration.

Teile der Anwendung

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

Weitere Informationen finden Sie unter Serverkonfiguration.