Orleans 2.0公式文書-6.1導入->プログラムの実行

3722 ワード

Orleansアプリケーション
典型的なOrleansアプリケーションは、Grainが存在するサーバプロセス(silo)のセットとクライアントプロセス(通常はWebサーバ)のセットから構成されます.クライアント・プロセスは、外部リクエストを受信し、grainメソッド呼び出しに変換し、結果を返します.したがって、Orleansアプリケーションを実行するには、siloクラスタを起動する必要があります.テストの目的のために、クラスタは単一のsiloから構成することができる.信頼性の高い本番導入を実現するために、クラスタに複数のsiloがフォールトトレランスと拡張に使用されることを明らかにしました.
クラスタが起動すると、クラスタに接続された1つ以上のクライアントプロセスを起動し、grainにリクエストを送信できます.クライアントはsilo上の特殊なTCPエンドポイント(ゲートウェイと呼ばれる)に接続される.デフォルトでは、クラスタ内のsiloごとにクライアントゲートウェイが有効になります.したがって、お客様は、すべてのsiloを並列に接続して、パフォーマンスと柔軟性を向上させることができます.
siloの構成と起動
SiloはClusterConfigurationオブジェクトを介してプログラミング的に構成される.ファイルから設定をロードしたり、直接インスタンス化したり、充填したり、使用可能なヘルプメソッドを使用して異なる導入環境を作成したりすることができます.ローカルテストの場合、最も簡単な方法はClusterConfiguration.LocalhostPrimarySilo()ヘルプメソッドを使用することです.次に、構成オブジェクトをSiloHostクラスの新しいインスタンスに渡し、インスタンスを初期化して起動します.
空のコンソールアプリケーションプロジェクトを作成できます.NET Framework 4.6.1以降、siloを1つ搭載します.Microsoft.Orleans.Server NuGetメタデータパッケージをプロジェクトに追加します.
PM> Install-Package Microsoft.Orleans.Server

ローカルsiloを起動する方法の例を次に示します.
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を介して、siloクラスタに接続しgrainに要求を送信するためのクライアントをプログラミング的に構成する.ClientConfigurationオブジェクトは、ファイルから設定をロードしたり、直接インスタンス化したり、充填したり、使用可能なヘルプメソッドを使用して異なる導入環境を作成したりすることができます.ローカルテストの場合、最も簡単な方法はClientConfiguration.LocalhostSilo()ヘルプメソッドを使用することです.次に、構成オブジェクトをClientBuilderクラスの新しいインスタンスに渡します.ClientBuilderは、クライアント機能を構成するためのより多くの方法を開示する.次いで、ClientBuilderオブジェクトのBuildメソッドが呼び出され、IClusterClientインタフェースの実装が得られる.最後に、クラスタに接続するために、返されたオブジェクトにConnect()メソッドを呼び出します.
面向を作成できます.NET Framework 4.6.1以降の空のコンソールアプリケーションプロジェクトは、クライアントを実行するか、siloをロードするために作成したコンソールアプリケーションプロジェクトを再利用します.Microsoft.Orleans.Client NuGetメタデータパッケージをプロジェクトに追加します.
PM> Install-Package Microsoft.Orleans.Client

クライアントがローカルsiloに接続する方法の例を次に示します.
var config = ClientConfiguration.LocalhostSilo();
var builder = new ClientBuilder().UseConfiguration(config).
var client = builder.Build();
await client.Connect();

生産構成
ここで使用する構成例は、同じマシン(localhost)上で実行されるsiloおよびクライアントをテストするために使用される.本番では、siloとクライアントは通常、異なるサーバで実行され、信頼性の高いクラスタ構成オプションの1つを使用して構成されます.このコンテンツの詳細については、コンフィギュレーションガイド(../clusters_and_clients/configuration_guide/index.md)およびクラスタ管理の説明を参照してください.
  •