zoukankan      html  css  js  c++  java
  • Tomcat 高性能实现关键点

    我在这里给大家讲解下Tomcat架构设计的几个关键要素,重点从性能及高可用等几个方面来讲解:

    1.技术选型

    (1) BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序直观简单易理解。

    配制项:protocol=”HTTP/1.1”

    (2) NIO方式适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4开始支持。

    配制项:protocol=”org.apache.coyote.http11.Http11NioProtocol”

    备注:我们常用的Jetty,Mina,ZooKeeper等都是基于java nio实现.

    (3) AIO方式使用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调用OS参与并发操作,编程比较复杂,JDK7开始支持。

    配制项:protocol=”org.apache.coyote.http11.Http11AprProtocol”

    备注:需在本地服务器安装APR库

    2.配制调优

    (1) 提高Tomcat请求处理能力
    修改server.xml:对于Linux服务器:maxThreads + acceptCount之和建议不超过1000

    <Connector port="8080"   
          protocol="org.apache.coyote.http11.Http11NioProtocol"  
                    connectionTimeout="20000"  
                    redirectPort="8443"   
                    maxThreads="600"
                 acceptCount="200"
                    minSpareThreads="50"
                 maxSpareThreads="80"
                    disableUploadTimeout="true" 
                    enableLookups="false"   
                    URIEncoding="UTF-8" />

    (2) 提高网络传输效率
    开启gzip压缩(http:8080或https:8443压缩)
    在上述修改项中添加:

    compression="on" compressionMinSize="2048"

    3.系统内核调优
    将Tomcat自身的配置调至较优或最优,不代表真正达到预期的效果,还有将系统内核调至最优,相关设置可以参考我的另一篇博客:

    Linux系统内核性能调优
    http://blog.csdn.net/hexieshangwang/article/details/47253241

    4.集群
    Linux + Nginx + Tomcat
    这个是我们常见的集群方式,我们可以在Nginx通过缓存或会话机制,建少连接数透传到Tomcat层

    另外,一般架构设计层面出问题主要集中在以下几个方面:

    1.达到能力上限
    2.Disk IO 或 Network IO阻塞
    3.webapp运行过程中异常未捕获
    4.GC过于频繁

  • 相关阅读:
    js自执行函数的几种不同写法的比较
    chrome浏览器font-size<12px无效解决办法
    清楚浮动的那些事
    css中font-family的中文字体
    雅虎34条军规
    Modernizr的介绍和使用
    手机也能拍大片
    响应式Web设计 – 布局
    JAVA基础-JDBC连接池
    JAVA基础-JDBC使用
  • 原文地址:https://www.cnblogs.com/qwop/p/6637341.html
Copyright © 2011-2022 走看看