Конфигурация локальной разработки
Рабочий пример приложения, предназначенного для Orleans версии 7.0, см. в разделе Orleans: Hello World. В примере размещаются клиент и silo в консольных приложениях .NET, работающих на разных платформах, а зерны и интерфейсы предназначены для .NET Standard 2.0.
Совет
Для более старых версий Orleansсм Orleans . примеры проектов.
Конфигурация Silo
Рекомендуется использовать пакет NuGet Microsoft.Extensions.Hosting для настройки и запуска silo. Кроме того, при разработке Orleans silo вам потребуется Microsoft.Orleans. Пакет NuGet сервера . Для локальной разработки silo вы настраиваете кластеризацию localhost Orleans , которая настроена для использования адреса обратной передачи цикла. Чтобы использовать кластеризацию localhost, вызовите UseLocalhostClustering метод расширения. Рассмотрим этот пример Program.cs файла узла silo:
using Microsoft.Extensions.Hosting;
await Host.CreateDefaultBuilder(args)
.UseOrleans(siloBuilder =>
{
siloBuilder.UseLocalhostClustering();
})
.RunConsoleAsync();
Предыдущий код:
- Создает построитель узлов по умолчанию.
UseOrleans
Вызывает метод расширения для настройки silo.UseLocalhostClustering
Вызывает метод расширения для заданного ISiloBuilder значения, чтобы настроить silo для использования кластеризации localhost.RunConsoleAsync
Объединяет метод для запуска сило в качестве консольного приложения.
Для локальной разработки см. приведенный ниже пример настройки силона для этого случая. Он настраивает и запускает silo прослушивание loopback
адреса, 11111
а 30000
также порты silo и шлюза соответственно.
Microsoft.Orleans.Server
Добавьте метапакет NuGet в проект.
dotnet add package Microsoft.Orleans.Server
Необходимо настроить ClusterOptions с помощью ISiloBuilder Configure
метода, указать, что вы хотите LocalhostClustering
в качестве выбора кластеризации с помощью этого фрагмента, являющегося основным, а затем настроить конечные точки silo.
Вызов ConfigureApplicationParts явно добавляет сборку с классами зерна в программу установки приложения. Он также добавляет любую указанную сборку WithReferences из-за расширения. После выполнения этих действий узел сило создается и запускается сило.
Вы можете создать пустой проект консольного приложения, предназначенный для платформа .NET Framework 4.6.1 или более поздней версии для размещения silo и консольного приложения .NET.
Ниже приведен пример запуска локального фрагмента:
try
{
var host = await BuildAndStartSiloAsync();
Console.WriteLine("Press Enter to terminate...");
Console.ReadLine();
await host.StopAsync();
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
static async Task<ISiloHost> BuildAndStartSiloAsync()
{
var host = new HostBuilder()
.UseOrleans(builder =>
{
builder.UseLocalhostClustering()
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "dev";
options.ServiceId = "MyAwesomeService";
})
.Configure<EndpointOptions>(
options => options.AdvertisedIPAddress = IPAddress.Loopback)
.ConfigureLogging(logging => logging.AddConsole());
})
.Build();
await host.StartAsync();
return host;
}
Настройка клиента
Рекомендуется использовать пакет NuGet Microsoft.Extensions.Hosting для настройки и запуска клиентов (в дополнение к silo). Вам также нужен Microsoft.Orleans. Пакет NuGet клиента . Чтобы использовать кластеризацию localhost в используемом клиенте, вызовите UseLocalhostClustering метод расширения. Рассмотрим этот пример Program.cs файла узла клиента:
using Microsoft.Extensions.Hosting;
using IHost host = Host.CreateDefaultBuilder(args)
.UseOrleansClient(client =>
{
client.UseLocalhostClustering();
})
.UseConsoleLifetime()
.Build();
await host.StartAsync();
Предыдущий код:
- Создает построитель узлов по умолчанию.
UseOrleansClient
Вызывает метод расширения для настройки клиента.UseLocalhostClustering
Вызывает метод расширения для заданногоIClientBuilder, чтобы настроить клиент для использования кластеризации localhost.UseConsoleLifetime
Вызывает метод расширения, чтобы настроить клиент для использования времени существования консоли.StartAsync
Вызывает метод переменнойhost
, чтобы запустить клиент.
Для локальной разработки см. приведенный ниже пример настройки клиента для этого случая. Он настраивает клиент, который будет подключаться к loopback
silo.
Microsoft.Orleans.Client
Добавьте метапакет NuGet в проект. После удобства работы с API можно выбрать и выбрать точные пакеты, включенные в Microsoft.Orleans.Client
вас, и ссылаться на них.
Install-Package Microsoft.Orleans.Client
Необходимо настроить ClientBuilder идентификатор кластера, соответствующий указанному для локального silo, и указать статическое кластеризация в качестве выбранного варианта кластеризации, указывающего его на порт шлюза silo.
ConfigureApplicationParts
вызов явно добавляет сборку с интерфейсами зерна в программу установки приложения.
После выполнения этих действий мы можем создать клиент и Connect()
метод на нем, чтобы подключиться к кластеру.
Вы можете создать пустой проект консольного приложения, предназначенный для платформа .NET Framework 4.6.1 или более поздней версии для запуска клиента или повторного использования проекта консольного приложения, созданного для размещения silo.
Ниже приведен пример подключения клиента к локальному silo:
var client = new ClientBuilder()
.UseLocalhostClustering()
.Configure<ClusterOptions>(options =>
{
options.ClusterId = "dev";
options.ServiceId = "MyAwesomeService";
})
.ConfigureLogging(logging => logging.AddConsole())
var client = builder.Build();
await client.Connect();