当前位置:首页 > 科技  > 软件

【震惊】Tomcat配置参数原来这么玩?99%的人不知道的秘密!

来源: 责编: 时间:2023-10-13 14:37:55 398观看
导读application.yml配置server: port: 8081 tomcat: maxThreads: 10 maxConnections: 10 acceptCount: 1 connectionTimeout: 3000测试1:在controller中休眠10s>connectionTimeout@RestController@Reques

application.yml配置WJZ28资讯网——每日最新资讯28at.com

server:  port: 8081  tomcat:    maxThreads: 10    maxConnections: 10    acceptCount: 1      connectionTimeout: 3000

测试1:

在controller中休眠10s>connectionTimeoutWJZ28资讯网——每日最新资讯28at.com

@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" ;  }}

发现程序能正常地响应。WJZ28资讯网——每日最新资讯28at.com

结论:connectionTimeout参数与具体的请求响应时间是没有关系的。WJZ28资讯网——每日最新资讯28at.com

测试2:

通过HttpURLConnection发送请求WJZ28资讯网——每日最新资讯28at.com

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 ;  }}

结果:WJZ28资讯网——每日最新资讯28at.com

图片图片WJZ28资讯网——每日最新资讯28at.com


WJZ28资讯网——每日最新资讯28at.com

结论:connectionTimeout参数与什么样的客户端做连接请求没关系。WJZ28资讯网——每日最新资讯28at.com

测试3:

通过Socket建立连接WJZ28资讯网——每日最新资讯28at.com

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 ) ;  }}

运行结果:WJZ28资讯网——每日最新资讯28at.com

图片图片WJZ28资讯网——每日最新资讯28at.com

差不多3s后程序结束了,也就是连接断开了。接着测试:WJZ28资讯网——每日最新资讯28at.com

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(什么也不做):WJZ28资讯网——每日最新资讯28at.com

图片图片WJZ28资讯网——每日最新资讯28at.com

结果2(控制台不停的输入内容):WJZ28资讯网——每日最新资讯28at.com

图片图片WJZ28资讯网——每日最新资讯28at.com


WJZ28资讯网——每日最新资讯28at.com

程序一开始运行,控制台不停地输入内容,发现程序一直正常,当停留3秒后在输入内容,发现程序又断开了。WJZ28资讯网——每日最新资讯28at.com

结论:connectionTimeout参数是说当客户端有服务器连接以后,如果客户端不输入任何内容,那么超过了connectionTimeout设置的时间后连接会被断开。WJZ28资讯网——每日最新资讯28at.com

完毕!!!WJZ28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-13355-0.html【震惊】Tomcat配置参数原来这么玩?99%的人不知道的秘密!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 两个实验让我彻底弄懂了「订阅关系一致」

下一篇: 聊聊 Reddit Programming 板块的未来

标签:
  • 热门焦点
  • 卢伟冰长文解析K60至尊版 对Redmi有着里程碑式的意义

    在今天的Redmi后性能时代战略发布会结束之后,Redmi总经理卢伟冰又带来了一篇长文,详解了为什么 Redmi 要开启后性能时代?为什么选择和 MediaTek、Pixelworks 深度合作?以及后性
  • 红魔电竞平板评测:大屏幕硬实力

    前言:三年的疫情因为要上网课的原因激活了平板市场,如今网课的时代已经过去,大家的生活都恢复到了正轨,这也就意味着,真正考验平板电脑生存的环境来了。也就是面对着这种残酷的
  • K6:面向开发人员的现代负载测试工具

    K6 是一个开源负载测试工具,可以轻松编写、运行和分析性能测试。它建立在 Go 和 JavaScript 之上,它被设计为功能强大、可扩展且易于使用。k6 可用于测试各种应用程序,包括 Web
  • Rust中的高吞吐量流处理

    作者 | Noz编译 | 王瑞平本篇文章主要介绍了Rust中流处理的概念、方法和优化。作者不仅介绍了流处理的基本概念以及Rust中常用的流处理库,还使用这些库实现了一个流处理程序
  • 量化指标是与非:挽救被量化指标扼杀的技术团队

    作者 | 刘新翠整理 | 徐杰承本文整理自快狗打车技术总监刘新翠在WOT2023大会上的主题分享,更多精彩内容及现场PPT,请关注51CTO技术栈公众号,发消息【WOT2023PPT】即可直接领取
  • 多线程开发带来的问题与解决方法

    使用多线程主要会带来以下几个问题:(一)线程安全问题  线程安全问题指的是在某一线程从开始访问到结束访问某一数据期间,该数据被其他的线程所修改,那么对于当前线程而言,该线程
  • Python异步IO编程的进程/线程通信实现

    这篇文章再讲3种方式,同时讲4中进程间通信的方式一、 Python 中线程间通信的实现方式共享变量共享变量是多个线程可以共同访问的变量。在Python中,可以使用threading模块中的L
  • 2022爆款:ROG魔霸6 冰川散热系统持续护航

    喜逢开学季,各大商家开始推出自己的新产品,进行打折促销活动。对于忠实的端游爱好者来说,能够拥有一款梦寐以求的笔记本电脑是一件十分开心的事。但是现在的
  • 上海举办人工智能大会活动,建设人工智能新高地

    人工智能大会在上海浦江两岸隆重拉开帷幕,人工智能新技术、新产品、新应用、新理念集中亮相。8月30日晚,作为大会的特色活动之一的上海人工智能发展盛典人工
Top