サービス プロセスを複数のサーバーで実行できるようにすることで、サービス プロセスを水平方向に拡張する方法について、アイデアをいただきたいと思います。これは C# で記述された Windows サービスであり、その目的は、当社の Exchange Web サービス (EWS) にサブスクライブして、新しい受信メール メッセージがあるたびに (HTTP コールバック経由で) 通知を受けることです。次に、サービスは電子メール メッセージを取得して処理し、可能であれば返信を送信してから、スリープ状態に戻り、次の受信電子メールを待ちます。
複数のマシンで実行する場合、すべてのマシンを EWS 通知にサブスクライブさせるか、そのうちの 1 つだけをサブスクライブさせることができます。それらすべてを購読させると、MS Exchange インフラストラクチャに負担がかかる可能性があるため、少し躊躇します。また、これにより、すべてのマシンが電子メールを受信して処理することになります。送信者が特定の要求メッセージに対して N 回 (N はファーム内のサーバーの数) 応答を受け取ることは望ましくありません。EWS にサブスクライブしているマシンが 1 台しかない場合、単一障害点にさらされることになります。
これに対処する方法についてあなたの提案を聞きたいです。複数のサーバーに電子メール メッセージを分散させて受信メッセージを処理させたいと思っています (おそらく、メッセージ キュー サーバーを使用してこれを行う必要があります)。ありがとう。