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