浅谈Tomcat三种运行模式
tomcat的运行模式有3种 一、bio(blocking I/O) 即阻塞式I/O操作,表示Tomcat使用的是传统的Java I/O操作(即java.io包及其子包)。是基于JAVA的HTTP/1.1连接器,Tomcat7以下版本在默认情况下是以bio模式运行的。一般而言,bio模式是三种运行模式中性能最低的一种。我们可以通过Tomcat Manager来查看服务器的当前状态。(Tomcat7 或以下,在 Linux 系统中默认使用这种方式) 二、nio(new I/O) 是Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API,因此nio也被看成是non-blocking I/O的缩写。它拥有比传统I/O操作(bio)更好的并发运行性能。 想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为 protocol="org.apache.coyote.http11.Http11NioProtocol" 启动后,就可以生效。 利用 Java 的异步请求 IO 处理,可以通过少量的线程处理大量的请求 三、apr 安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能. 必须要安装apr和native,直接启动就支持apr。下面的修改纯属多余,仅供大家扩充知识,但仍然需要安装apr和native 官方对三种方式简单对比 Java Blocking Connector Java Non Blocking Connector APR/native Connector APR项目有APR,APR-util和APR-iconv,其中APR-iconv是可选安装的。 下载最新的APR和APR-util源码包 4、安装APR 1)解压apr-1.4.6:tar -zxf apr-1.4.6 2) cd apr-1.4.6 3)依次执行./configure make sudo make install 在apr被安装到了/usr/local/apr目录下面 5、 安装APR-util 1) 解压apr-util-1.4.1:tar -zxfapr-util-1.4.1 2) cd apr-util-1.4.1 3) 依次执行./configureCwith-apr=/usr/local/apr/bin/apr-1-config (如果不加后面的可能会报APR找不到的错误”checkingfor APR… no configure: error: APR could not be located. Please use theCwith-apr option.” make sudo make install apr-util也被安装找/usr/local/apr下面 6、进入tomcat主目录下,在bin/tomcat-native-1.1.23-src/jni/native下面依次执行: ./configureCwith-apr=/usr/local/apr/bin/apr-1-config (如果不加后面的可能会报APR找不到的错误”checkingfor APR… no configure: error: APR could not be located. Please use theCwith-apr option.” make sudo make install 7、 设置启动参数: 在catalina.sh 加入启动参数: CATALINA_OPTS=”$CATALINA_OPTS-Djava.library.path=/usr/local/apr/lib” 总结 以上就是本文关于浅谈Tomcat三种运行模式的全部内容,感兴趣的朋友可以继续参阅:Tomcat开启JMX服务方法介绍、jsp-解决文件上传后重启Tomcat时文件自动删除问题等,如有不足之处,欢迎留言指出,小编一定及时回复大家并修改,希望对大家对本站多多支持! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java – 一起使用Platform.exit()和System.exit(int)
- rx-java – 带有Observable.just()和一个参数的RxJava flat
- java – OutOfMemoryError有什么增加和如何?
- java – 将PDF附加到电子邮件
- JVM性能调优的6大步骤,及关键调优参数详解
- Form组件
- java – 无法访问Honeycomb中的“世界可读”首选项
- 最简单的babel+webpack配置
- java – nextDouble()在输入double时抛出InputMismatchExce
- java – Hibernate @MapKeyColumn和表继承导致Unknown列类型