有谁知道使用 Microsoft WCF 构建的 Web 服务将如何扩展到大量用户?

我想到的级别是 1000 多个客户端用户连接到为我们的应用程序提供业务逻辑的 WCF 服务集合,并且这些服务与数据库进行通信 - 类似于传统的 3 层体系结构。

是否有任何特定的问题会降低性能,或者是否有任何设计经验教训可以实现这种级别的可扩展性?

有帮助吗?

解决方案

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

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

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

此外,由于使 WCF 服务代码无状态相当常见,因此通过添加额外的框来扩展实际的 WCF 代码非常容易,这意味着系统的整体性能更有可能受到业务逻辑和与 WCF 相比,持久层。

其他提示

也许您首先可以开始考虑的 4 件最重要的事情(除了拥有良好的服务代码之外)是与以下相关的项目:

  • 绑定 - 某些绑定及其运行的协议只是比其他绑定更快,tcp 将比任何 http 绑定更快
  • 实例模式 - 这决定了如何针对会话调用者分配您的类
  • 一向和双向操作 - 如果不需要向客户端返回响应,则执行单向操作
  • 节流 - 最大会话/并发调用和实例

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top