Udostępnij przez


Konfiguracja klientów

Skonfiguruj klienta do nawiązywania połączenia z klastrem silosów i wysyłania żądań do ziaren programowo poprzez IHostBuilder i kilka dodatkowych klas opcji. Podobnie jak w przypadku opcji silosu, klasy opcji klienta są zgodne ze wzorcem Opcji na platformie .NET.

Skonfiguruj klienta do nawiązywania połączenia z klastrem silosów i wysyłania żądań do ziaren programowo poprzez ClientBuilder i kilka dodatkowych klas opcji. Podobnie jak w przypadku opcji silosu, klasy opcji klienta są zgodne ze wzorcem Opcji na platformie .NET.

Wskazówka

Jeśli chcesz tylko uruchomić lokalny silos i lokalny klient na potrzeby programowania, zobacz Konfiguracja programowania lokalnego.

Dodaj pakiet NuGet Microsoft.Orleans.Clustering.AzureStorage do projektu klienta.

Istnieje kilka kluczowych aspektów konfiguracji klienta:

  • Orleans informacje o klastrowaniu
  • Dostawca klastrowania
  • Części aplikacji

Przykład konfiguracji klienta:

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

Przeanalizujmy kroki użyte w tym przykładzie:

Orleans informacje o klastrowaniu

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

W tym miejscu ustawimy dwie elementy:

  • Element ClusterOptions.ClusterId do "my-first-cluster": to unikatowy identyfikator klastra Orleans. Wszyscy klienci i silosy korzystające z tego identyfikatora mogą bezpośrednio komunikować się ze sobą. Niektórzy mogą na przykład użyć innego ClusterId rozwiązania dla każdego wdrożenia.
  • ClusterOptions.ServiceId do "AspNetSampleApp": Jest to unikatowy identyfikator aplikacji, używany przez niektórych dostawców (np. dostawców persistencji). Ten identyfikator powinien pozostać stabilny we wszystkich wdrożeniach.

Dostawca klastrowania

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

Klient odnajduje wszystkie dostępne bramy w klastrze przy użyciu tego dostawcy. Dostępnych jest kilka dostawców; w tym miejscu używamy dostawcy tabel platformy Azure.

Aby uzyskać więcej informacji, zobacz Konfiguracja serwera.

Części aplikacji

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

Aby uzyskać więcej informacji, zobacz Konfiguracja serwera.