7.0을 대상으로 하는 Orleans 작업 샘플 애플리케이션은 OrleansHello World를 참고하세요. 샘플은 여러 플랫폼에서 작동하는 .NET 콘솔 애플리케이션에서 클라이언트 및 사일로를 호스트하고, 그레인 및 인터페이스는 .NET Standard 2.0을 대상으로 합니다.
팁
Orleans의 이전 버전의 경우 Orleans 샘플 프로젝트를 참조하세요.
사일로 구성
사일로를 구성하고 실행하기 위해 Microsoft.Extensions.Hosting NuGet 패키지를 사용하는 것을 추천합니다. 또한, 사일로를 Orleans 개발하는 데에 MicrosoftOrleans.Server NuGet 패키지가 필요합니다. 로컬 Orleans 사일로 개발의 경우 루프백 주소를 사용하는 localhost 클러스터링을 구성합니다. localhost 클러스터링 사용하려면 UseLocalhostClustering 확장 메서드를 호출합니다. 다음 Program.cs 파일 예제를 사일로 호스트에 대해 고려하십시오.
using Microsoft.Extensions.Hosting;
await Host.CreateDefaultBuilder(args)
.UseOrleans(siloBuilder =>
{
siloBuilder.UseLocalhostClustering();
})
.RunConsoleAsync();
위의 코드는 다음을 수행합니다.
- 기본 호스트 작성기를 만듭니다.
-
UseOrleans확장 메서드를 호출하여 사일로를 구성합니다. - 지정된
UseLocalhostClustering에 대해 ISiloBuilder 확장 메서드를 호출하여 로컬호스트 클러스터링을 사용하도록 사일로를 구성합니다. - 사일로를 콘솔 애플리케이션으로 실행하도록
RunConsoleAsync메서드를 연결합니다.
로컬 개발의 경우 이 사례에 대해 사일로를 구성하는 방법을 보여 주는 아래 예제를 참조하세요.
loopback 주소에서 수신 대기하는 사일로를 구성하고 시작하며, 각각 사일로와 게이트웨이 포트로 11111 및 30000를 사용합니다.
Microsoft.Orleans.Server 프로젝트에 NuGet 메타 패키지를 추가합니다.
dotnet add package Microsoft.Orleans.Server
ClusterOptions
ISiloBuilder 메서드를 통해 Configure를 구성하고, 이 사일로가 기본인 클러스터링 선택 항목으로 LocalhostClustering을 지정한 다음, 사일로 엔드포인트를 구성해야 합니다.
호출은 ConfigureApplicationParts 곡물 클래스가 포함된 어셈블리를 애플리케이션 설정에 명시적으로 추가합니다. 또한 WithReferences 확장으로 인해 참조된 어셈블리를 추가합니다. 이러한 단계를 완료한 후 사일로 호스트를 빌드하고 사일로를 시작합니다.
사일로를 호스팅하기 위해 .NET Framework 4.6.1 이상을 대상으로 하는 빈 콘솔 애플리케이션 프로젝트를 만들 수 있습니다.
다음은 로컬 사일로를 시작하는 방법의 예입니다.
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;
}
클라이언트 구성
Microsoft.Extensions.Hosting NuGet 패키지를 사용하여 클라이언트를 구성하고 실행하는 것이 좋습니다(사일로 외에). Microsoft.Orleans.Client 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 구성합니다.
Microsoft.Orleans.Client 프로젝트에 NuGet 메타 패키지를 추가합니다. API에 익숙해지면, Microsoft.Orleans.Client에 포함된 필요한 패키지를 선택하여 대신 참조할 수 있습니다.
Install-Package Microsoft.Orleans.Client
로컬 사일로에 대해 지정된 것과 일치하는 클러스터 ID로 ClientBuilder를 구성합니다. 정적 클러스터링을 클러스터링 선택으로 지정하여 사일로의 게이트웨이 포트를 가리킵니다.
호출은 ConfigureApplicationParts 그레인 인터페이스를 포함하는 어셈블리를 애플리케이션 설정에 명시적으로 추가합니다.
이러한 단계를 완료한 후 클라이언트를 빌드하고 해당 메서드를 Connect() 호출하여 클러스터에 연결합니다.
클라이언트를 실행하기 위해 .NET Framework 4.6.1 이상을 대상으로 하는 빈 콘솔 애플리케이션 프로젝트를 만들거나 사일로를 호스팅하기 위해 만든 콘솔 애플리케이션 프로젝트를 다시 사용할 수 있습니다.
클라이언트가 로컬 사일로에 연결하는 방법의 예는 다음과 같습니다.
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();
.NET