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

时间:2020-03-05 18:47:37  来源:igfitidea点击:

有没有人对使用Microsoft WCF构建Web服务如何将其扩展到大量用户有任何经验?

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

是否有任何导致性能降低的陷阱,或者从中学到的设计经验可以实现这种级别的可伸缩性?

解决方案

回答

WCF配置默认限制,并发性和可伸缩性

回答

为了确保WCF应用程序可以扩展到所需的级别,我认为我们可能需要对服务必须满足的统计信息进行调整。

我们提到要为" 1000多个客户端用户"提供服务,但是要评估服务是否可以在该级别上运行,还需要估算一些使用情况数字,这将计算一些更简单的统计信息,例如应用程序每秒的请求数需要处理。

刚完成WCF项目的工作,我们设法在测试硬件上每秒获得400个请求,再加上我们每个用户每天预期产生300个请求的预期使用模式,表明我们每天平均可以处理100,000个用户(假设一整天的使用情况图表)。

此外,由于使WCF服务代码变为无状态是很普遍的事,因此通过添加其他框来扩展实际的WCF代码非常容易,这意味着系统的整体性能很可能会受到业务逻辑和持久性层比WCF来的多。

回答

我们可能首先要看的4大问题(除了具有良好的服务代码)是与以下各项有关的:

  • 绑定-某些绑定及其运行的协议仅比其他协议快,tcp将比任何http绑定都快
  • 实例模式-确定如何根据会话调用者分配类
  • 单向和双向操作-如果不需要将响应返回给客户,请单向执行
  • 节流-最大会话数/并发调用数和实例数

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