Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 单台服务器每秒处理2000个HTTP请求是否现实?_Java_Json_Http_Servlets - Fatal编程技术网

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

Java 单台服务器每秒处理2000个HTTP请求是否现实?,java,json,http,servlets,Java,Json,Http,Servlets,我正在构建一个基于Java的web服务(使用JSON作为数据编码),它每秒需要处理多达2000个HTTP请求。每个请求所需的处理几乎可以忽略不计(HashMap.put()方法调用),解析JSON可能是主要的开销 我想知道一个高内存四倍超大EC2实例(68GB RAM,8核,64位)是否能够每秒处理多达2000个HTTP请求 我意识到准确的答案将是困难的,我只是想知道这是否在可能性的范围内,或者我是否在吸可卡因 我目前正在使用web框架,尽管我注意到它目前似乎没有得到维护。人们可以推荐其他适合这

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

我想知道一个高内存四倍超大EC2实例(68GB RAM,8核,64位)是否能够每秒处理多达2000个HTTP请求

我意识到准确的答案将是困难的,我只是想知道这是否在可能性的范围内,或者我是否在吸可卡因

我目前正在使用web框架,尽管我注意到它目前似乎没有得到维护。人们可以推荐其他适合这种高容量使用的可嵌入HTTP服务器吗?

每秒2000个请求(或2个KRP)应该在Java servlet的可能范围内,前提是您不会引入巨大的瓶颈,并且您使用的框架不会太吸引人。考虑到您显然没有访问任何后端,任务应该是CPU受限的,并且可以很好地扩展

Web框架基准测试显示了许多Java框架,它们给出了非常好的结果;即使有结果,仍然远远超过2 krps。在Amazon上,他们使用的实例比您计划使用的要小(我收集到c3.4XL)

您可以尝试提供一个方便的ServletAPI,并且是。是另一种可能性,尽管它有自己的API


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

根据,这绝对是可能的,可以处理每秒超过100000次的交互。一些JSON解析器可以将请求字符串转换为JSON对象,或者您甚至可以使用它的binaray变体,如本文所述(如果消息很长或非常复杂)。从中可以看出,使用最新操作系统的服务器可以处理的连接数超过了300000,远远超过了您的任务所需的连接数


当然,这也取决于您需要采取哪些操作来处理可能是限制因素的请求

为什么要将它限制在一台服务器上,因为它在停机等方面存在明显的问题,并且每秒处理那么多请求。如果你研究出如何扩大规模,它将一举两得。这个问题在目前的形式下是无法回答的。但作为参考,这里有一个这样的主题,一个用户的单服务器每秒处理15k-.2000 req/s是可能的,但有很多开放的问题,如带宽、IO,最好的方法是进行性能测试,并查看特定测试的数字,你的问题需要一般人来回答。对于给定的硬件,每秒2k的请求应该不是什么大问题。唯一需要考虑的是网络速度和消息大小。如果它们不是一个瓶颈,那么几乎任何http服务器都可以实现这一点。事实上,jetty或netty可以支持更高的负载、高连接数等。我曾经使用过一台netty服务器,其硬件配置比您的少,支持数千毫秒/秒。我连接了数百个客户端,而不是ec2。