학습
Orleans 애플리케이션
일반적인 Orleans 애플리케이션은 조직이 상주하는 서버 프로세스(사일로)의 클러스터와 외부 요청을 수신하고, 조직 메서드 호출로 전환하여 결과를 반환하는 클라이언트 프로세스 세트(일반적으로 웹 서버)로 구성됩니다. 따라서 Orleans 애플리케이션을 실행하기 위해 가장 먼저 해야 할 일은 사일로 클러스터를 시작하는 것입니다. 테스트를 위해 클러스터는 단일 사일로로 구성될 수 있습니다. 신뢰할 수 있는 프로덕션 배포의 경우 내결함성 및 크기 조정을 위해 클러스터에 둘 이상의 사일로가 필요합니다.
클러스터가 실행되면 클러스터에 연결하고 요청을 조직에 보낼 수 있는 하나 이상의 클라이언트 프로세스를 시작할 수 있습니다. 클라이언트는 사일로 - 게이트웨이의 특수 TCP 엔드포인트에 연결합니다. 기본적으로 클러스터의 모든 사일로에는 클라이언트 게이트웨이가 사용하도록 설정되어 있습니다. 따라서 클라이언트는 성능 및 복원력을 향상하기 위해 모든 사일로에 병렬로 연결할 수 있습니다.
사일로는 ClusterConfiguration 개체를 통해 프로그래밍 방식으로 구성됩니다. 인스턴스화하고 직접 채우거나, 파일에서 설정을 로드하거나, 다양한 배포 환경에 사용할 수 있는 여러 도우미 메서드를 사용하여 만들 수 있습니다. 로컬 테스트의 경우 LocalhostPrimarySilo 도우미 메서드를 사용하는 것이 가장 쉬운 방법입니다. 그런 다음, 구성 개체가 SiloHost 클래스의 새 인스턴스로 전달되며, 그 후에 초기화하고 시작할 수 있습니다.
사일로를 호스팅하기 위해 .NET Framework 4.6.1 이상을 대상으로 하는 빈 콘솔 애플리케이션 프로젝트를 만들 수 있습니다.
Microsoft.Orleans.Server
NuGet 메타 패키지를 프로젝트에 추가합니다.
Install-Package Microsoft.Orleans.Server
다음은 로컬 사일로를 시작하는 방법의 예입니다.
var siloConfig = ClusterConfiguration.LocalhostPrimarySilo();
var silo = new SiloHost("Test Silo", siloConfig);
silo.InitializeOrleansSilo();
silo.StartOrleansSilo();
Console.WriteLine("Press Enter to close.");
// wait here
Console.ReadLine();
// shut the silo down after we are done.
silo.ShutdownOrleansSilo();
사일로 클러스터에 연결하고 조직에 요청을 보내기 위한 클라이언트는 ClientConfiguration 개체 및 ClientBuilder를 통해 프로그래밍 방식으로 구성됩니다. ClientConfiguration
개체를 인스턴스화하고 직접 채우거나, 파일에서 설정을 로드하거나, 다양한 배포 환경에 사용할 수 있는 여러 도우미 메서드를 사용하여 만들 수 있습니다. 로컬 테스트의 경우 LocalhostSilo 도우미 메서드를 사용하는 것이 가장 쉬운 방법입니다. 그런 다음, 구성 개체가 ClientBuilder
클래스의 새 인스턴스로 전달됩니다.
ClientBuilder
는 추가 클라이언트 기능을 구성하기 위한 더 많은 메서드를 제공합니다. ClientBuilder
개체의 해당 ClientBuilder.Build() 메서드가 호출된 후 IClusterClient 인터페이스의 구현을 가져옵니다. 마지막으로 반환된 개체에서 IClusterClient.Connect() 메서드를 호출하여 클러스터에 연결합니다.
클라이언트를 실행하기 위해 .NET Framework 4.6.1 이상을 대상으로 하는 빈 콘솔 애플리케이션 프로젝트를 만들거나 사일로를 호스팅하기 위해 만든 콘솔 애플리케이션 프로젝트를 다시 사용할 수 있습니다. Microsoft.Orleans.Client
NuGet 메타 패키지를 프로젝트에 추가합니다.
Install-Package Microsoft.Orleans.Client
클라이언트가 로컬 사일로에 연결할 수 있는 방법의 예는 다음과 같습니다.
var config = ClientConfiguration.LocalhostSilo();
var builder = new ClientBuilder().UseConfiguration(config).
var client = builder.Build();
await client.Connect();
여기서 사용한 구성 예제는 localhost
와 동일한 컴퓨터에서 실행되는 사일로 및 클라이언트를 테스트하기 위한 것입니다. 프로덕션에서 사일로와 클라이언트는 일반적으로 서로 다른 서버에서 실행되며 신뢰할 수 있는 클러스터 구성 옵션 중 하나로 구성됩니다. 자세한 내용은 구성 가이드 및 클러스터 관리에 대한 설명에서 확인할 수 있습니다.