我有一个需要处理大量简单http请求的servlet。我有时必须将其作为json响应返回,其他时候作为html返回。
整个servlet的代码是相同的,但最后我有一个if语句:
if(json) {
request.setContentType("application/JSON");
String json_response = String.format("some string %s", some_other_string);
out.print(json_response);
} else {
request.setContentType("text/html");
String html_response = String.format("<html><body>some text %s</body></html>", some_other_string);
out.print(html_response);
}
我的连接池设置为:
<Resource name="jdbc/testdb"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/table?autoReconnect=true"
username="user"
password="pass"
maxActive="250"
maxIdle="60"
minIdle="30"
maxWait="10000"
/>
我在专用服务器上运行它。具有12gb ram和ssd的四核。 Tomcat 8和Sun jdk 8
当我发送json响应请求时,服务器每秒处理200个请求没有问题。 但是当我发送html响应请求时,响应时间大约为80毫秒,当负载小于每秒10个请求时,但当它超过此时,响应时间平均为3000 - 4000毫秒。
我定时执行servlet,并在1ms内执行。还有高负荷的html响应,所以3000毫秒应该来自其他地方。
我尝试将html放入jsp文件中,但这并没有改变任何内容。
我无法运行visualVM来检查servlet的性能,但由于它在1ms内执行,我认为问题应该在Tomcat配置中的某个地方。
有人对解决此问题的方法有所了解吗?
由于