【问题标题】:web service that can withstand with 1000 concurrent users with response in 25 millisecond可承受 1000 个并发用户并在 25 毫秒内响应的 Web 服务
【发布时间】:2011-04-10 14:42:35
【问题描述】:

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

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

您能否建议我在开发时需要采取的任何架构或任何额外工作。以及我们如何计算服务器硬件配置来应对。

提前致谢。

【问题讨论】:

    标签: asp.net wcf web-services


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      几个原则:

      1. 尽早测试,经常测试。
      2. 成功的系统获得更多流量
      3. 可靠性通常很重要
      4. 缓存通常是性能的关键

      详细说明。立即构建一个简单的系统。即使业务逻辑非常简化,如果它是 Web 服务和数据库访问,您也可以对其进行性能测试。与一位用户一起测试。你看到了什么?时间都去哪儿了?在您开发系统时,添加真实代码继续进行该测试。原因:一)。现在你知道 25ms 是否可以实现。乙)。您会立即发现任何损害性能的代码更改。现在对大量用户进行测试,您遇到了哪些降级模式?这开始为您提供并表明您的平台功能。

      我怀疑结果将是单台机器无法为您切割。即使它会,如果你成功了,你会得到更多的流量。所以计划使用多台服务器。

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

      大多数情况下,我们使用缓存可以获得良好的性能。许多用户会要求相同的数据吗?你能缓存它吗?是否有更新需要考虑?在什么情况下你需要一个集群失效的分布式缓存系统?多服务器案例再次出现。

      【讨论】:

      • 许多用户会要求相同的数据吗?不,数据会有所不同。你能缓存它吗?我可以根据连接的客户端和他们的频繁查询来捕捉它。是否有更新需要考虑?会有更新,但不会来自服务。在什么情况下你需要一个集群失效的分布式缓存系统?我不清楚集群失效?
      【解决方案3】:

      为什么需要 WCF?

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

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

      我还想了解为什么您不能直接连接到数据库进行查找,您实际上是否首先需要 WCF 服务?

      查看 Memcached。

      【讨论】:

      • 为什么需要 WCF?因为它可以被视为我们客户的供应商的组件并且可扩展。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-26
      • 2021-07-05
      • 1970-01-01
      相关资源
      最近更新 更多