我目前正在构建我的.net 4.5应用程序。目前我有web层和wcf服务层。他们通过肥皂互相沟通。
两个图层都位于一台服务器上。
我正在考虑从通过肥皂沟通转向直接项目参考。因此它从一个应用程序从两个应用程序移动。这背后的主要动机是提高不必对Web和服务之间的通信进行序列化和反序列化的性能。
我从这一变化中失去的是将我的服务层移动到未来的单独层的可扩展性,即不同的服务器。
我正在寻找有关此问题的反馈,序列化是否会产生重大影响。关于上述的想法?我应该考虑的任何遗漏的东西。
答案 0 :(得分:1)
根据我个人的经验,我更喜欢横向扩展(向webfarm添加更多web服务器),而不是分发应用程序。
我认为在将WCF与直接本地呼叫进行比较时,您可能会受到相当大的性能影响。但影响取决于您的架构以及每次请求实际发出的呼叫数量。例如,如果您要获得10个实体,并且对于每个实体,您需要单独的WCF调用,那么开销将比发出单个服务调用并同时返回所有10个实体大得多。
现在,您可以探索的另一个选项是使用NamedPipes而不是HTTP,因为它们当前将托管在同一环境中。
有关详细信息,请参阅Choosing a Transport。