1

我目前正在构建我的 .net 4.5 应用程序。目前我有 web 层和 wcf 服务层。他们通过肥皂相互交流。

两层都位于一台服务器上。

我正在考虑从通过肥皂进行交流转向直接的项目参考。所以它从一个应用程序从两个移动。这背后的主要动机是提高性能,无需对 Web 和服务之间的通信进行序列化和反序列化。

我从这种变化中失去的是将来将我的服务层移动到单独的层(即不同的服务器)的可扩展性。

我正在寻找对此的反馈,序列化是否会对性能产生重大影响。对上面的想法?任何我应该认为我已经省略的东西。

4

1 回答 1

1

根据我自己的个人经验,我更喜欢水平扩展(向 webfarm 添加更多网络服务器)而不是分发应用程序。

我认为将 WCF 与直接本地调用进行比较时,您可能会受到相当大的性能影响。但影响取决于您的架构以及每个请求实际发出的调用数。例如,如果您要获取 10 个实体,并且对于每个实体都需要一个单独的 WCF 调用,那么开销将比发出单个服务调用并同时返回所有 10 个要大得多。

现在,也许您可​​以探索的另一个选项是使用 NamedPipes 而不是 HTTP,因为它们当前将托管在同一环境中。

有关更多信息,请参阅选择交通工具

于 2012-11-04T21:55:08.073 回答