1

現在、.net 4.5 アプリケーションを設計しています。現在、Web レイヤーと wcf サービス レイヤーがあります。彼らは石鹸を介して互いに通信します。

両方のレイヤーが 1 つのサーバー上に配置されています。

私は石鹸を介したコミュニケーションからプロジェクトの直接参照への移行を検討しています。2つから1つのアプリケーションから移動するように。この背後にある主な動機は、Web とサービス間の通信のシリアライズとデシリアライズを行う必要がないというパフォーマンスの向上です。

この変更によって失われるのは、将来、サービス層を別の層、つまり別のサーバーに移動するスケーラビリティです。

これに関するフィードバックを探しています。シリアル化によるパフォーマンスへの大きな影響はありますか。上記についての考え?私が省略したと考えるべきものは何でも。

4

1 に答える 1

1

私自身の個人的な経験から、私はアプリケーションを配布するよりも、水平方向にスケーリングする (Web サーバーを Web ファームに追加する) ことを好みます。

WCF と直接のローカル呼び出しを比較すると、パフォーマンスが大幅に低下する可能性があると思います。ただし、影響はアーキテクチャと、リクエストごとに実際に発行する呼び出しの数によって異なります。たとえば、10 個のエンティティを取得していて、それぞれに対して個別の WCF 呼び出しが必要な場合、オーバーヘッドは、1 つのサービス呼び出しを発行して 10 個すべてを同時に返すよりもはるかに大きくなります。

現在、検討できる別のオプションは、HTTP の代わりに NamedPipes を使用することです。これらは現在、同じ環境でホストされているためです。

詳細については、トランスポートの選択を参照してください。

于 2012-11-04T21:55:08.073 に答える