美文网首页
Tomcat最大连接数、自定义线程池、默认参数

Tomcat最大连接数、自定义线程池、默认参数

作者: 追梦小蜗牛 | 来源:发表于2020-12-01 18:48 被阅读0次
pexels-rachel-claire-4993102.jpg

背景:

用Jmeter做了一次简单的压测,通过JDK自带的Jconsole工具和对应的进程建立连接,可以通过很形象的观察到Tomcat内存大小、活动线程的个数、加载类的个数、CPU的占有率的变化...然后就想看一下tomcat内部是如何管理这些请求的...

初始化流程:

初始化流程.png

请求分析:

请求在Acceptor登录,Acceptor是一个Runnable,里面有个while循环,在不停的接收请求...分两步:

  • 校验当前连接数是否超过max connections
  • 获取接下来的新的连接,如果没有,就阻塞...有的话,就返回一个SocketChannel。


    image.png

    Tomcat默认的最大连接数:


    image.png
    利用LimitLatch的特性来控制是否阻塞或放行...其底层本质仍然是大名鼎鼎的AbstractQueuedSynchronizer,如图所示:
    image.png

    底层使用死循环或者LockSupport.park(this)来实现阻塞...
    创建自定义线程池:

    public void createExecutor() {
        internalExecutor = true;
        TaskQueue taskqueue = new TaskQueue();
        TaskThreadFactory tf = new TaskThreadFactory(getName() + "-exec-", daemon, getThreadPriority());
        executor = new ThreadPoolExecutor(getMinSpareThreads(), getMaxThreads(), 60, TimeUnit.SECONDS,taskqueue, tf);
        taskqueue.setParent( (ThreadPoolExecutor) executor);
    }

总结:

很多困难和阻碍是自己想象出来的...

相关文章

  • Tomcat最大连接数、自定义线程池、默认参数

    背景: 用Jmeter做了一次简单的压测,通过JDK自带的Jconsole工具和对应的进程建立连接,可以通过很形象...

  • tomcat8常用配置说明

    关闭Tomcat的监听端口,默认为8005 链接器Connector 参数优化配置 tomcat线程池 自动部署功...

  • 线程池工具

    功能简介 固定线程、限制最大队列长度的自定义线程池; 定制线程池加载任务、子线程各种参数,如分页大小、是否子线程出...

  • Spring Boot性能太差,教你几招轻松搞定

    目录异步执行增加内嵌 Tomcat 的最大连接数使用 @ComponentScan()默认 Tomcat 容器改为...

  • Tomcat默认线程池

    Tomcat扩展了原生的Java线程池,来满足Web容器高并发的需求。 简单来说,Tomcat 自定义线程池继承了...

  • 线程池 死锁

    线程池 7个参数自定义

  • 线程池核心参数

    线程池核心参数 1)corePoolSize(线程池基本大小) 2)maximumPoolSize(线程池最大数量...

  • 调优 Tomcat 线程池

    调优 Tomcat 线程池 打开 tomcat 的server.xml,配置Executor,相关参数说明如下: ...

  • tomcat优化

    线程池优化 maxConnections(最大连接数)注意:最大连接数是受系统内核限制的,查看方式ulimit -...

  • Tomcat 请求线程的解析

    查询tomcat当前并发连接数 关于tomcat 请求线程的问题 Tomcat 请求线程数

网友评论

      本文标题:Tomcat最大连接数、自定义线程池、默认参数

      本文链接:https://www.haomeiwen.com/subject/ddvswktx.html