我们的客户要求是开发一个可以承受1-2k并发网站用户的WCF,响应时间应该在25毫秒左右。
此服务从数据库中读取几列,并由不同的供应商使用。
您能否建议我在开发过程中需要采取的任何架构或任何额外的努力。我们如何计算服务器硬件配置以应对。
提前致谢。
答案 0 :(得分:3)
几乎不可能。您需要网络连接到服务,服务激活,业务逻辑处理,数据库连接(另一个网络连接),数据库查询。由于2000个并发用户,您需要多个应用程序服务器=网络连接受负载均衡器的影响。我无法想象网络和硬件基础设施应该能够在25毫秒内为2000个并发用户完成这样的操作。这样的要求是不现实的。
我想如果你只是尝试从你的计算机运行数据库查询到远程数据库,你会发现即使这样简单的任务也不会在25ms内完成。
答案 1 :(得分:1)
一些原则:
详细说明。立即构建一个简单的系统。即使业务逻辑非常简化,如果它是Web服务和数据库访问,您也可以对其进行性能测试。用一个用户测试。你看到了什么?时间到了哪里?在开发系统时添加实际代码继续进行该测试。理由:a)。现在你知道25ms是否可以实现。 B)。您发现任何立即损害性能的代码更改。现在用很多用户测试,你会遇到什么样的退化模式?这开始为您提供并指示您的paltforms功能。
我怀疑结果将是一台机器不会为你削减它。即使它会,如果你成功,你会获得更多的流量。所以计划使用多台服务器。
无论如何,出于可靠性原因,您需要多台服务器。当你不能假设一个服务器时,各种有趣的实现细节都会出现 - 例如。你不再拥有单身人士了; - )
大多数时候,我们使用缓存获得了良好的性能。许多用户会询问相同的数据吗?你能缓存吗?是否有需要考虑的更新?在这种情况下,您是否需要具有群集失效的分布式缓存系统?那个多服务器案件再次出现。
答案 2 :(得分:0)
为什么需要WCF?
您是否可以将尽可能多的服务转移到静态服务和缓存查找中?
如果我理解您的问题,将有1000个用户访问您的网站并在您的数据库上执行查询。你肯定应该研究WCF连接上的连接池,但最好的办法是避免完全进行数据库查找,并让你的网站从缓存命中返回数据。
我还会研究为什么你不能直接连接到数据库进行查找,你是否真的需要首先使用WCF服务?
了解Memcached。