Конфигурация локальной разработки
Рабочий пример приложения, предназначенного для 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 настраивается кластеризация localhostOrleans, который настроен для использования адреса обратного цикла. Чтобы использовать 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 с помощью ISiloBuilderConfigure
метода, указать, что вы хотите 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();
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по