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
修改以下内容:

<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />

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

<Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol"connectionTimeout="20000"redirectPort="8443" />

重启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.gz
    cd tomcat-native-1.1.33-src/jni/native/
    ./configure --with-apr=/usr/bin/apr-1-config
    make && 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
      修改以下内容:

      <Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443" />

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

      <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"connectionTimeout="20000"redirectPort="8443" />

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

查看Tomcat Connector运行模式

  • 方法一:在http://x.x.x.x:8080/manager/status 中查看服务器状态

  • 方法二:根据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

测试参考:   tomcat bio nio apr 模式性能测试

转载于:https://www.cnblogs.com/qlqwjy/p/8036650.html

【Tomcat】Tomcat Connector的三种运行模式【bio、nio、apr】相关推荐

  1. Tomcat Connector的三种运行模式【bio、nio、apr】

    Tomcat Connector(Tomcat连接器)有bio.nio.apr三种运行模式 bio bio(blocking I/O,阻塞式I/O操作),表示Tomcat使用的是传统的Java I/O ...

  2. spark sql 本地调试_Spark精华问答|Spark的三种运行模式有何区别?

    戳蓝字"CSDN云计算"关注我们哦! Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第 ...

  3. python编程模式是什么_python 开发的三种运行模式详细介绍

    Python 三种运行模式 Python作为一门脚本语言,使用的范围很广.有的同学用来算法开发,有的用来验证逻辑,还有的作为胶水语言,用它来粘合整个系统的流程.不管怎么说,怎么使用python既取决于 ...

  4. Spark精华问答 | Spark的三种运行模式有何区别?

    戳蓝字"CSDN云计算"关注我们哦! Spark是一个针对超大数据集合的低延迟的集群分布式计算系统,比MapReducer快40倍左右,是hadoop的升级版本,Hadoop作为第 ...

  5. Spark的三种运行模式

    Spark三种运行模式 1.Spark运行模式: 2.验证Spark三种模式代码 1.Spark运行模式: ①Local(也称单节点模式):常用于开发和学习 ./spark-shell - -mast ...

  6. tomcat运行模式(bio,aio,apr)

    tomcat中间件的启动运行模式有分为3种,可以在启动运行控制台和启动日志中看出.默认模式bio(阻塞IO)  缺点:能非常低下,没有经过任何优化处理和支持,并发量高时,线程数较多,浪费资源.nio( ...

  7. draw.io二次开发(1)三种运行模式的区别

    想尝试在开源的drawio的基础上做一些开发,实现自己的定制化需求.可能是因为这个工具已经非常完善了吧,找到的大部分都是教你如何使用,开发相关资料太少,看来只能靠自己了. 关于开发环境搭建,请先看这一 ...

  8. python的编程模式-python编程(python开发的三种运行模式)【转】

    版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 单循环模式 多线程模式 reactor模式 [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing ...

  9. python编程(python开发的三种运行模式)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] python作为一门脚本语言,使用的范围很广.有的同学用来算法开发,有的用来验证逻辑,还有的作为 ...

最新文章

  1. jQuery 基础选择器/层级选择器/隐式迭代
  2. 【转】Luajit-2.1.0-beta1的发布和生成arm64用bytecode的解脱
  3. 搞定系统设计 02:估算的一些方法
  4. leetcode266. 回文排列
  5. 网络 TCP的头部 3次握手和4次挥手 出现大量TIME_WAIT或CLOSE_WAIT的原因及解决办法
  6. Android开发学习总结(五)——Android应用目录结构分析(转)
  7. 计算机黑屏的原因及修复,导致笔记本电脑开机黑屏的原因以及对应的修复方法...
  8. 《c语言 从入门到放弃》,从入门到放弃的?单片机这样做很容易!
  9. 疾病研究:我是一名34岁的进行性肌营养不良症患者
  10. UTI ( Uniform Type Identifier )
  11. 函数求最小公倍数-C语言
  12. s:iterator各种遍历用法
  13. ip_forward 权限不够
  14. java的round函数加点差_【JAVA】Math.Round()函数常见问题“四舍5入”
  15. 软件开发技术联盟 - 图书系列资源
  16. 飞行摇杆设置_分离摇杆+16000DPI,旗舰电竞鼠标ROG魔刃标准版体验
  17. WiFi资源管理器:WiFi Explorer Pro for Mac
  18. Java实现使用Modbus4j+seroUtils读取Mudbus RTU/ASCII Over TCP/IP连接设备数据
  19. VB内嵌matlab simulink仿真
  20. python键盘记录255是哪个按键_Keylogger: Python写的键盘敲击记录器

热门文章

  1. java: -source 1.5 中不支持 diamond 运算符
  2. Apache POI读取Excel
  3. 蒙哥马利java算法_算法详解 - 蒙哥马利算法的概念与原理
  4. mysql连接查询优点_1105 ROM优缺点,MySQL连接类,查插更方法
  5. 在SPS中直接查看用HTML格式阅读Office文档
  6. 离别海润光伏:杨怀进的“轮回怪圈”
  7. python并行任务之生产消费模式
  8. java实现线性顺序表
  9. [考试]20151008
  10. 路由器-配置(思科)