我几乎没有处理大量交易网站的经验,最近遇到了这个有趣的问题。我很想知道在高负载(每秒数千个请求)下 Java Web 应用程序中的瓶颈会出现在哪里。如果有人能给我一个高层次的方法来思考以下问题,那就太好了!
我想出的唯一方法是使用 memcached 来缓存数据库查找,但我不知道如何计算每个请求将花费的时间,因此系统每秒可能有多少请求能够处理。
问题: 互联网规模的应用程序必须设计为处理大量交易。描述一个系统设计,该系统必须平均每秒处理 30,000 个 HTTP 请求。对于每个请求,系统必须使用通过 URL 查询字符串传入的关键字来查找包含 5000 万字的字典。每个响应都将包含一个包含单词定义的字符串(100 字节或更少)。
描述系统的主要组件,并注意哪些组件应该定制,哪些组件可以利用第三方应用程序。包括每个组件的硬件估计。请注意,设计应以最低的硬件/软件许可成本实现最高性能。
记录提出估算的理由。
描述如果每个定义为 10 KB,设计将如何变化。