可以承受1000个并发用户的Web服务,响应速度为25毫秒

时间:2010-09-10 07:02:17

标签: asp.net wcf web-services

我们的客户要求是开发一个可以承受1-2k并发网站用户的WCF,响应时间应该在25毫秒左右。

此服务从数据库中读取几列,并由不同的供应商使用。

您能否建议我在开发过程中需要采取的任何架构或任何额外的努力。我们如何计算服务器硬件配置以应对。

提前致谢。

3 个答案:

答案 0 :(得分:3)

几乎不可能。您需要网络连接到服务,服务激活,业务逻辑处理,数据库连接(另一个网络连接),数据库查询。由于2000个并发用户,您需要多个应用程序服务器=网络连接受负载均衡器的影响。我无法想象网络和硬件基础设施应该能够在25毫秒内为2000个并发用户完成这样的操作。这样的要求是不现实的。

我想如果你只是尝试从你的计算机运行数据库查询到远程数据库,你会发现即使这样简单的任务也不会在25ms内完成。

答案 1 :(得分:1)

一些原则:

  1. 早点测试,经常测试。
  2. 成功的系统获得更多流量
  3. 可靠性通常很重要
  4. 缓存通常是性能的关键
  5. 详细说明。立即构建一个简单的系统。即使业务逻辑非常简化,如果它是Web服务和数据库访问,您也可以对其进行性能测试。用一个用户测试。你看到了什么?时间到了哪里?在开发系统时添加实际代码继续进行该测试。理由:a)。现在你知道25ms是否可以实现。 B)。您发现任何立即损害性能的代码更改。现在用很多用户测试,你会遇到什么样的退化模式?这开始为您提供并指示您的paltforms功能。

    我怀疑结果将是一台机器不会为你削减它。即使它会,如果你成功,你会获得更多的流量。所以计划使用多台服务器。

    无论如何,出于可靠性原因,您需要多台服务器。当你不能假设一个服务器时,各种有趣的实现细节都会出现 - 例如。你不再拥有单身人士了; - )

    大多数时候,我们使用缓存获得了良好的性能。许多用户会询问相同的数据吗?你能缓存吗?是否有需要考虑的更新?在这种情况下,您是否需要具有群集失效的分布式缓存系统?那个多服务器案件再次出现。

答案 2 :(得分:0)

为什么需要WCF?

您是否可以将尽可能多的服务转移到静态服务和缓存查找中?

如果我理解您的问题,将有1000个用户访问您的网站并在您的数据库上执行查询。你肯定应该研究WCF连接上的连接池,但最好的办法是避免完全进行数据库查找,并让你的网站从缓存命中返回数据。

我还会研究为什么你不能直接连接到数据库进行查找,你是否真的需要首先使用WCF服务?

了解Memcached。