Udostępnij za pośrednictwem


Konfiguracja klientów

Klient do nawiązywania połączenia z klastrem silosów i wysyłania żądań do ziarna jest konfigurowany programowo za pośrednictwem IHostBuilder kilku dodatkowych klas opcji. Podobnie jak w przypadku opcji silosu, klasy opcji klienta są zgodne ze wzorcem Opcji na platformie .NET.

Klient do nawiązywania połączenia z klastrem silosów i wysyłania żądań do ziarna jest konfigurowany programowo za pośrednictwem ClientBuilder kilku dodatkowych klas opcji. Podobnie jak w przypadku opcji silosu, klasy opcji klienta są zgodne ze wzorcem Opcji na platformie .NET.

Napiwek

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

Dodaj microsoft .Orleans. Pakiet NuGet 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();

Przyjrzyjmy się krokom użytym w tym przykładzie:

Orleans informacje o klastrowaniu

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

W tym miejscu ustawiamy dwie rzeczy:

  • "my-first-cluster"do ClusterOptions.ClusterId : jest to unikatowy identyfikator klastraOrleans. Wszyscy klienci i silos używający tego identyfikatora będą mogli bezpośrednio komunikować się ze sobą. Niektóre z nich zdecydują się na użycie innego ClusterId dla poszczególnych wdrożeń, na przykład.
  • wartość ClusterOptions.ServiceId to "AspNetSampleApp": jest to unikatowy identyfikator aplikacji, który będzie używany przez niektórych dostawców (na przykład dla dostawców trwałości). Ten identyfikator powinien być stabilny (nie zmieniany) we wdrożeniach.

Dostawca klastrowania

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

Klient odnajdzie całą bramę dostępną w klastrze przy użyciu tego dostawcy. Dostępnych jest kilka dostawców. W tym przykładzie 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.