Настройка клиента
Клиент для подключения к кластеру силосов и отправки запросов к зернам настраивается программным способом с помощью 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())
Дополнительные сведения см. в разделе "Конфигурация сервера".