关闭

Tomcat 高性能实现关键点

标签: tomcatbionioaio高性能
1160人阅读 评论(0) 收藏 举报
分类:

我在这里给大家讲解下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过于频繁

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:14351281次
    • 积分:4771
    • 等级:
    • 排名:第5996名
    • 原创:60篇
    • 转载:14篇
    • 译文:1篇
    • 评论:19条