解释Tomcat三种操作模式(BIO,NIO,APR)的比较和场景分析

发布者:上海IT外包来源:http://www.lanmon.net点击数:2971

Tomcat 8.0默认为nio模式,无需进行更改,BIO模式已被废弃,今天主要介绍tomcat的三种操作模式:BIO,NIO,ARP。
简要说明并配置操作模式
1,bio:无需任何优化和处理,数百个并发性能极低。
配置server.xml
2,nio:采用java异步io技术,无阻塞IO技术。
配置server.xml
3,apr模式
最难安装的操作系统级控件,也是在Tomcat上运行高并发应用程序的首选模式。
配置apr模式后,需要安装apr,apr-utils,tomcat-native软件包。
(1)apr安装
#tar zxf apr-1.5.2.tar.gz -C/usr/local/src /
#cd /usr/local/src/apr-1.5.2/
#。/configure --prefix=/usr/local/apr && make && make install
(2)apr-utils安装
#tar zxf apr-util-1.5.4.tar.gz -C/usr/local/src /
#cd /usr/local/src/apr-util-1.5.4/
#。/configure --with-apr=/usr/local/apr/--prefix=/usr/local/apr-utils && make && make install
(3)tomcat-native安装
#cd /usr/local/apache-tomcat-7.0.65/bin/
#tar zxf tomcat-native.tar.gz
#cd tomcat-native-1.1.33-src/jni/native
#。/configure --with-apr=/usr/local/apr --with-java-home=/usr/local/java/&& make && make install(4)配置APR环境变量
#vim/etc/profile
以下配置的新配置
导出LD_LIBRARY_PATH=$ LD_LIBRARY_PATH:/usr/local/apr/lib
使配置生效
#source/etc/profile
BIO,NIO,AIO适用场景分析:
BIO模式适用于少量且固定数量的连接。该方法对服务器资源有很高的要求。并发仅限于应用程序。 JDK1.4之前的唯一选择,但该程序直观且易于理解。
NIO模式适用于具有大量连接和短连接(轻型操作)的架构,例如聊天服务器。并发仅限于应用程序,编程很复杂,JDK 1.4支持它。
AIO方法用于具有大量连接和长连接(重新操作)的体系结构中,例如专辑服务器,它完全调用OS以参与并发操作,并且编程很复杂,并且JDK7支持它。
三种模式之间的差异如下:
BIO:
线程处理请求。缺点:当并发量很高时,线程数很大,这会浪费资源。
在Tomcat 7或更低版本中,默认情况下在Linux系统中使用此方法。
NIO:
使用Java的异步IO处理,可以使用少量线程处理大量请求。
默认情况下,Tomcat8在Linux系统中使用此方法。
APR:
也就是说,Apache Portable Runtime解决了操作系统级别的io阻塞问题。
默认情况下,在Win7或更高版本的系统上使用Tomcat7或Tomcat8。
官方详细描述了三个不同之处:
当Tomcat启动时,您可以通过记录来查看Connector使用的操作模式:
启动ProtocolHandler ['http-bio-8080']
启动ProtocolHandler ['http-nio-8080']
启动ProtocolHandler ['http-apr-8080']
个人觉得在tomcat bio,nio,apr模式下,每个都会有自己适用的场合,不能说哪个好,不好,就像tomcat内存配置一样,如果内存设置太大,gc垃圾收集机制它会慢一些;如果内存设置太小,tomcat中会有内存溢出,因此将其设置在合适的范围内非常重要,不仅不会出错,而且gc循环使得性能达到最佳效果。当然,这也需要根据不同的场合进行不同的测试才能产生最佳效果!
IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部