application.yml配置
玛多网站制作公司哪家好,找成都创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。成都创新互联从2013年创立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选成都创新互联。
server:
port: 8081
tomcat:
maxThreads: 10
maxConnections: 10
acceptCount: 1
connectionTimeout: 3000
在controller中休眠10s>connectionTimeout
@RestController
@RequestMapping("/test")
public class TestController {
@GetMapping("/index")
public Object index() {
try {
System.out.println(Thread.currentThread().getName()) ;
TimeUnit.SECONDS.sleep(10) ;
} catch (InterruptedException e) {
e.printStackTrace();
}
return "success" ;
}
}
发现程序能正常地响应。
结论:connectionTimeout参数与具体的请求响应时间是没有关系的。
通过HttpURLConnection发送请求
public class HttpURLConnectionDemo {
public static void main(String[] args) throws Exception {
HttpURLConnection con = (HttpURLConnection) new URL("http://localhost:8081/test/index").openConnection() ;
con.setDoInput(true) ;
con.setDoOutput(true) ;
long start = System.currentTimeMillis() ;
InputStream is = con.getInputStream() ;
Scanner scan = new Scanner(is) ;
while(scan.hasNext()) {
System.out.println("接收到内容:" + scan.next() + "\n耗时:" + (System.currentTimeMillis() - start)) ;
}
scan.close() ;
con.disconnect() ;
con = null ;
}
}
结果:
图片
结论:connectionTimeout参数与什么样的客户端做连接请求没关系。
通过Socket建立连接
public class TomcatConnectionTimeoutDemo {
public static void main(String[] args) throws Exception {
Socket socket = new Socket("127.0.0.1", 8081) ;
long start = System.currentTimeMillis() ;
InputStream is = socket.getInputStream() ;
is.read() ;
System.out.println(System.currentTimeMillis() - start ) ;
}
}
运行结果:
图片
差不多3s后程序结束了,也就是连接断开了。接着测试:
public class TomcatConnectionTimeoutDemo {
public static void main(String[] args) throws Exception {
Socket socket = new Socket("127.0.0.1", 8081) ;
long start = System.currentTimeMillis() ;
final OutputStream os = socket.getOutputStream() ;
new Thread(() -> {
Scanner scan = new Scanner(System.in) ;
while(scan.hasNext()) {
String content = scan.next() ;
System.out.println("准备发送:" + content) ;
try {
os.write(content.getBytes()) ;
os.flush() ;
} catch (IOException e) {
e.printStackTrace() ;
}
}
}).start() ;
InputStream is = socket.getInputStream() ;
is.read() ;
System.out.println(System.currentTimeMillis() - start ) ;
}
}
结果1(什么也不做):
图片
结果2(控制台不停的输入内容):
图片
程序一开始运行,控制台不停地输入内容,发现程序一直正常,当停留3秒后在输入内容,发现程序又断开了。
结论:connectionTimeout参数是说当客户端有服务器连接以后,如果客户端不输入任何内容,那么超过了connectionTimeout设置的时间后连接会被断开。
完毕!!!
网站栏目:【震惊】Tomcat配置参数原来这么玩?99%的人不知道的秘密!
标题来源:http://www.shufengxianlan.com/qtweb/news3/284553.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联