Поделиться через


Настройка клиента

Клиент для подключения к кластеру силосов и отправки запросов к зернам настраивается программным способом с помощью IHostBuilder нескольких дополнительных классов вариантов. Как и параметры silo, классы параметров клиента соответствуют шаблону "Параметры" в .NET.

Клиент для подключения к кластеру силосов и отправки запросов к зернам настраивается программным способом с помощью ClientBuilder нескольких дополнительных классов вариантов. Как и параметры silo, классы параметров клиента соответствуют шаблону "Параметры" в .NET.

Совет

Если вы просто хотите запустить локальный silo и локальный клиент для целей разработки, см . статью "Локальная конфигурация разработки".

Добавьте Microsoft.Orleans. Clustering.Azure служба хранилища пакет NuGet в клиентский проект.

Существует несколько ключевых аспектов конфигурации клиента:

  • Orleansсведения кластеризация
  • Поставщик кластеризации
  • Части приложения

Пример конфигурации клиента:

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

Рассмотрим шаги, используемые в этом примере:

Orleansсведения кластеризация

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

Здесь мы устанавливаем две вещи:

  • значение ClusterOptions.ClusterId "my-first-cluster"/>: это уникальный идентификатор для Orleans кластера. Все клиенты и silo, использующие этот идентификатор, смогут напрямую взаимодействовать друг с другом. Некоторые из них будут использовать разные ClusterId варианты для каждого развертывания, например.
  • "AspNetSampleApp"значение ClusterOptions.ServiceId : это уникальный идентификатор приложения, который будет использоваться некоторыми поставщиками (например, для поставщиков сохраняемости). Этот идентификатор должен быть стабильным (не изменяться) во всех развертываниях.

Поставщик кластеризации

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

Клиент обнаружит все шлюзы, доступные в кластере, с помощью этого поставщика. Здесь доступны несколько поставщиков, в этом примере мы используем поставщик таблиц Azure.

Дополнительные сведения см. в разделе "Конфигурация сервера".

Части приложения

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

Дополнительные сведения см. в разделе "Конфигурация сервера".