WCF性能:在同一服务的IIS中有多个实例(单独的网站)有意义吗?

时间:2014-06-19 10:58:59

标签: wcf

为了提高WCF服务的性能*,可以执行以下操作之一:

  1. 使用WCF内置功能(限制等)
  2. 在同一台计算机上安装同一服务的多个实例(IIS中的单独网站)。
  3. 据我所知,这些事情的测试比讨论的更好,但是如果有人已经尝试过这两种方法,我们只想得到一个意见。

    此服务使用InstanceMode.PerSession和ConcurrencyMode.Multiple

    性能:此服务处理数据(MTOM编码)。不应该有任何超时,因为客户端将同步调用此服务。

1 个答案:

答案 0 :(得分:1)

不,正如您所描述的那样,来自单个服务的多个端点无济于事。

是的,您可以在具有多个端点的IIS中运行WCF,但是相同的服务正在处理请求,无论它们是进入端点1,2,3还是n。由于WCF请求是在自己的线程上处理的,因此添加额外的端点没有任何好处。

以这种方式思考:10个请求进入WCF服务。无论是有10个端点还是只有1个端点,每个请求都在自己的线程上处理。因此,添加端点没有速度优势。

我花了两年时间建立工业规模的WCF服务。如果您担心性能,WCF服务是您最不担心的。我已经加载测试了一个WCF服务,在一个中型(4核)服务器上发送了1000个并发用户(每个上传多个157kb文件);上传160个文件/秒时,服务器几乎没有出汗。

如果您计划构建庞大的Web服务,那么分散处理负载的方法是让1-n WCF Web服务由F5之类的负载均衡器提供。然后,如果您愿意,可以扩展到Amazon.Com大小。