3

したがって、ASP.NET Web アプリケーションの負荷を簡単に分散できます。2 つのサーバー間にロード バランサーを設定しましたが、Web サーバーがポート 80 で応答しない場合、要求を受信しません。

独自のアクションを実行する C# コンソール アプリケーションまたは Windows サービスに対してこれを行うための実績のある手法はありますか? ピアプロセスが生きているか死んでいるか、ハートビートを行うなどを知るためのフレームワークはありますか?

私はNServiceBusで少し実験してきましたが、特定の種類のアプリケーションでは、ほとんどの作業をイベントへの応答として実行すると、実際には Web アプリケーションのようになります。複数のプロセスでスケーリングと負荷分散が容易ですが、ほとんどの場合、通常、作業を開始する責任を負う「マスター」プロセスの概念が必要になるため、それは中途半端なソリューションのように感じます。

4

1 に答える 1

3

実際、NServiceBus はディストリビューター プロセスでこれを処理します (ここで説明: http://docs.particular.net/nservicebus/scalability-and-ha/distributor/ )。NServiceBus に付属する汎用ホストを使用すると、コンソール アプリと Windows サービスの両方でまったく同じコードと構成を実行できます (ここで説明: http://docs.particular.net/nservicebus/hosting/nservicebus-host/)。

これは、通常のコマンド メッセージだけでなく、イベントにも使用できます。

負荷分散されたすべての作業が完了したときに何をすべきかを「マスター」プロセスに決定させたい場合は、saga インフラストラクチャの形式で提供されます (ここで説明: http://docs.particular.net/nservicebus/ sagas/であり、NServiceBus に付属する製造サンプルで示されています)。

要するに、あなたはほとんどカバーされるべきです。

于 2010-03-29T14:22:19.137 に答える