博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Tomcat】Tomcat Connector的三种运行模式【bio、nio、apr】
阅读量:5906 次
发布时间:2019-06-19

本文共 1787 字,大约阅读时间需要 5 分钟。

Tomcat Connector(Tomcat连接器)有bio、nio、apr三种运行模式

bio

bio(blocking I/O,阻塞式I/O操作),表示Tomcat使用的是传统的Java I/O操作(即java.io包及其子包)。

默认的模式,性能最差,没有经过任何优化处理和支持。

nio

nio(non-blocking I/O),Java SE 1.4及后续版本提供的一种新的I/O操作方式(即java.nio包及其子包)。Java nio是一个基于缓冲区、并能提供非阻塞I/O操作的Java API。拥有比传统I/O操作(bio)更好的并发运行性能。

要让Tomcat以nio模式来运行,修改配置文件:tomcat/conf/server.xml

vim tomcat/conf/server.xml

修改以下内容:

 

修改protocol的值为org.apache.coyote.http11.Http11NioProtocol

 

 

这里写图片描述

重启Tomcat后生效。

apr

  apr(Apache Portable Runtime/Apache可移植运行时库),Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地提高Tomcat对静态文件的处理性能。从操作系统级别来解决异步的IO问题,大幅度的提高性能。 Tomcat apr也是在Tomcat上运行高并发应用的首选模式。

要让Tomcat以apr模式来运行,必须安装apr和native

  • 安装apr:

    yum -y install apr apr-devel

  • 安装native:

    cd /usr/local/tomcat/bin/tar xzfv tomcat-native.tar.gzcd tomcat-native-1.1.33-src/jni/native/./configure --with-apr=/usr/bin/apr-1-configmake && make install

     

     
  • 【需要安装gcc: yum -y install gcc】

    安装完成之出现如下提示信息:

    这里写图片描述

  • 整合Tomcat apr

    • 设置环境变量

      方法一:在/bin/catalina.sh中增加1行:
      (在echo “Using CATALINA_BASE: $CATALINA_BASE”的上一行添加)
      CATALINA_OPTS="-Djava.library.path=/usr/local/apr/lib"
      这里写图片描述
      方法二:在/etc/profile中加入:
      export CATALINA_OPTS=-Djava.library.path=/usr/local/apr/lib
      使配置生效:
      source /etc/profile

    • 修改配置文件:tomcat/conf/server.xml

      vim tomcat/conf/server.xml

      修改以下内容:

       

    • 修改protocol的值为org.apache.coyote.http11.Http11NioProtocol

       

  • 重启Tomcat,启动日志出现以下内容证明此时以APR模式启动

    这里写图片描述

查看Tomcat Connector运行模式

  • 方法一:在 中查看服务器状态

    这里写图片描述

  • 方法二:根据Tomcat启动日志信息判断

    • bio

       
      INFO: Initializing ProtocolHandler ["http-bio-8080"]Aug 04, 2015 10:20:35 PM org.apache.coyote.AbstractProtocol init
    • nio

       
      INFO: Initializing ProtocolHandler ["http-nio-8080"]Aug 04, 2015 10:27:58 PM org.apache.coyote.AbstractProtocol init

apr

INFO: Initializing ProtocolHandler ["http-apr-8080"]Aug 04, 2015 10:33:45 PM org.apache.coyote.AbstractProtocol init
测试参考:    
你可能感兴趣的文章
程序员如何提高工作效率
查看>>
promise
查看>>
将Java应用部署到SAP云平台neo环境的两种方式
查看>>
数据批量导入Oracle数据库
查看>>
调用lumisoft组件发邮件 不需要身份验证 不需要密码
查看>>
DW 正则
查看>>
抓屏原理
查看>>
UNIX网络编程读书笔记:TCP输出、UDP输出和SCTP输出
查看>>
扩展 DbUtility (1)
查看>>
iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
查看>>
Hadoop学习笔记系列文章导航
查看>>
SpringMVC中ModelAndView addObject()设置的值jsp取不到的问题
查看>>
Prometheus : 入门
查看>>
使用 PowerShell 创建和修改 ExpressRoute 线路
查看>>
在C#中获取如PHP函数time()一样的时间戳
查看>>
Redis List数据类型
查看>>
大数据项目实践(四)——之Hive配置
查看>>
初学vue2.0-组件-文档理解笔记v1.0
查看>>
上传图片预览
查看>>
lagp,lacp详解
查看>>