WCF如何扩展到大量客户端用户?

时间:2008-09-04 14:06:58

标签: wcf scalability soa

有没有人对使用Microsoft的WCF构建Web服务的能力有多大经验可以扩展到大量用户?

我想到的水平是1000多个客户端用户连接到一组WCF服务,为我们的应用程序提供业务逻辑,这些与数据库交谈 - 类似于传统的3层架构。

是否有任何特定陷阱降低了性能,或者是否有任何设计经验可以实现这种级别的可扩展性?

3 个答案:

答案 0 :(得分:15)

为了确保您的WCF应用程序可以扩展到所需的级别,我认为您可能需要调整您对服务必须满足的统计数据的思考。

您提到服务“1000+客户端用户”,但要衡量您的服务是否可以在该级别执行,您还需要有一些估计的使用数据,这将帮助您计算一些更简单的统计数据,例如每个请求的数量您的应用需要处理的第二个。

刚刚完成WCF项目的工作,我们在测试硬件上设法每秒获得400个请求,这与我们每天发出300个请求的预期使用模式相结合,表明我们每天平均可以处理100,000个用户(假设一天中有一个平坦的使用图表)。

此外,由于将WCF服务代码设置为无状态是相当常见的,因此通过添加其他框来扩展实际的WCF代码非常容易,这意味着系统的整体性能更有可能受到您的限制。业务逻辑和持久层比WCF要好。

答案 1 :(得分:3)

答案 2 :(得分:2)

你可以首先看到的最重要的四件事(除了拥有良好的服务代码)可能是与以下相关的项目:

  • 绑定 - 一些绑定及其运行的协议比其他绑定更快,tcp将比任何http绑定更快
  • 实例模式 - 这决定了如何为会话呼叫者分配课程
  • One&双向操作 - 如果不需要回复客户端,则执行单向操作
  • 限制 - 最多会话/同意电话和实例

他们确实默认设计WCF是安全的,因此默认值非常有限。