单个服务器每秒处理 2000 个 HTTP 请求是否现实?

san*_*ity 7 java json servlets http

我正在构建一个基于 Java 的 Web 服务(使用 JSON 作为数据编码),它需要每秒处理多达 2,000 个 HTTP 请求。每个请求所需的处理几乎可以忽略不计(HashMap.put() 方法调用),解析 JSON 可能是主要的开销。

我想知道单个 High-Memory Quadruple Extra Large EC2 实例(68GB RAM、8 核、64 位)是否能够每秒处理多达 2,000 个 HTTP 请求?

我意识到一个确切的答案会很困难,我只是想知道这是否在可能性范围内,或者我是否在抽烟。

我目前正在使用SimpleWeb Web 框架,但我注意到它目前似乎没有得到维护。人们可以推荐替代的可嵌入 HTTP 服务器,它们非常适合这种高容量使用吗?

ale*_*dez 2

每秒 2000 个请求(或 2 krps)应该完全在 Java servlet 的可能性范围内,只要您没有引入巨大的瓶颈并且您使用的框架不会太糟糕。鉴于您显然没有访问任何后端,该任务应该受 CPU 限制并且可以很好地扩展。

Web Framework Benchmarks 的JSON 序列化测试显示,许多 Java 框架都给出了非常好的结果;即使有20 个数据库查询,结果仍然远远超过 2 krps。在 Amazon 上,他们使用m1.large实例,该实例比您计划使用的实例要小(我猜是 c3.4xlarge)。

您可以尝试Undertow,它提供了方便的 servlet API 并且维护良好Netty是另一种可能性,尽管它有自己的 API。

注意:我意识到这个问题有点老了,但问题应该仍然有效。