linux centos tomcat8配置apr模式

参考文章:https://www.cnblogs.com/zishengY/p/7101616.html?utm_source=itdadao&utm_medium=referral

一、BIO、NIO、AIO

先了解四个概念:

同步 : 自己亲自出马持银行卡到银行取钱(使用同步IO时,Java自己处理IO读写)。

异步 : 委托一小弟拿银行卡到银行取钱,然后给你(使用异步IO时,Java将IO读写委托给OS处理,需要将数据缓冲区地址和大小传给OS(银行卡和密码),OS需要支持异步IO操作API)。

阻塞 : ATM排队取款,你只能等待(使用阻塞IO时,Java调用会一直阻塞到读写完成才返回)。

非阻塞 : 柜台取款,取个号,然后坐在椅子上做其它事,等号广播会通知你办理,没到号你就不能去,你可以不断问大堂经理排到了没有,大堂经理如果说还没到你就不能去(使用非阻塞IO时,如果不能读写Java调用会马上返回,当IO事件分发器会通知可读写时再继续进行读写,不断循环直到读写完成)。

Java对BIO、NIO、AIO的支持:

Java BIO : 同步并阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。

Java NIO : 同步非阻塞,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。

Java AIO(NIO.2) : 异步非阻塞,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理

BIO、NIO、AIO适用场景分析:

BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比较高,并发局限于应用中,JDK1.4以前的唯一选择,但程序直观简单易理解。

NIO方式适用于连接数目多且连接比较短(轻操作)的架构,比如聊天服务器,并发局限于应用中,编程比较复杂,JDK1.4开始支持。

AIO方式使用于连接数目多且连接比较长(重操作)的架构,比如相册服务器,充分调用OS参与并发操作,编程比较复杂,JDK7开始支持。

二、tomcat三种模式简介

BIO

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

Tomcat在默认情况下,就是以bio模式运行的。遗憾的是,就一般而言,bio模式是三种运行模式中性能最低的一种。我们可以通过Tomcat Manager来查看服务器的当前状态。

NIO

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

APR

(Apache Portable Runtime/Apache可移植运行库),是Apache HTTP服务器的支持库。你可以简单地理解为,Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地提高Tomcat对静态文件的处理性能。 Tomcat apr也是在Tomcat上运行高并发应用的首选模式。

三.下面介绍安装apr步骤

     1.安装apr 1.6.3

         a.将文件下载在这个地方,命令: cd  /usr/local/src

         b.下载文件,命令:wget http://apache.fayea.com/apr/apr-1.6.3.tar.gz     ....(链接中1.6.3 版本号视安装时候的版本迭代改变,需要自己去网站查看最新版本号。访问网址为:http://apache.fayea.com/apr/ 如下图 )

     

       c.进入解压文件夹,安装命令:

                                                       ./configure  
                                                       make  
                                                       make install  

    2.安装apr-util-1.6.1

       a.同上在/usr/local/src文件夹下,下载apr-util-1.6.1文件并解压缩

        b.进入解压后的文件夹下,安装.命令:

                       ./configure --with-apr=/usr/local/apr --with-java-home=/home/jdk1.8
                       make  
                       make install

           (这是三个命令,--with-java-home这个赋值,需要更新你自己机器的本地jdk地址)

      3.安装apr-native(tomcat/bin 文件夹下有压缩包,解压即可)

             b.进入tomcat/bin/tomcat-native-1.2.17-src/native 下,输入编译命令:

                  ./configure --with-apr=/usr/local/apr --with-java-home=/home/jdk1.8
                  make  
                  make install  

       4.profile追加命令:

                  vi /etc/profile  
                  # 后面添加以下两条内容  
                  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apr/lib

                  export LD_RUN_PATH=$LD_RUN_PATH:/usr/local/apr/lib
                  # 使profile生效命令为: 
                                                     source /etc/profile      

      5.tomcat下conf文件夹,修改server.xml,protocol更改为:org.apache.coyote.http11.Http11AprProtocol

       

    6.tomcat/conf文件夹下,修改tomcat-users.xml

  将上下的<!--    和-->去掉, 使其生效,并添加一条权限(圈红),目的是让tomcat用户有权限访问tomcat控制面板

     

    end: 重启tomcat8...访问tomcat,    http://127.0.0.1:8080/manager/status

 

然后看catalina.out输出log,可以看到,已经成功

已经由nio改为了apr模式,但是ajp,没有改过来,这个留下一个问题,修改server.xml,也没有修改成功。

 protocol不知道怎么修改

发布了53 篇原创文章 · 获赞 26 · 访问量 27万+

猜你喜欢

转载自blog.csdn.net/qq_33919114/article/details/81665869