使用Tomcat Native提升Tomcat IO效率的方法详解

使用Tomcat Native提升Tomcat IO效率的方法详解,第1张

使用TomcatNative提升TomcatIO效率的方法详解

本文详细介绍了如何通过应用TomcatNative来提高TomcatIO的效率,非常详细的为大家介绍。对大家的学习、培训或者工作都有一定的参考价值,一定要朋友们参考。

介绍

IO有很多种,从最初的阻塞IO,到非阻塞IO,再到IO时分复用和异步IO,一步步完善IO的特性,保证完美。

今天,我们将介绍如何使用TomcatNative来提高TomcatIO的效率。

Tomcat的接口方式

Tomcat使用连接器来解决与外部客户端的通信。Connecter用于接受外部客户的需求,并将其传递给解决方案模块进行解决。

Tomcat中有两种连接器。一个是HTTP连接器,另一个是AJP连接器。

HTTP连接器应该大家都很熟悉,也是tomcat默认设置应用的连接器。

还有一个叫做AJP的连接器,主要用于与web服务器通信。由于AJP协议的速度比HTTP快,AJP不仅用于与其他web服务器通信,还可以根据AJP构建tomcat集群。

两种方法都支持四种协议,即BIO、NIO、NIO2和APR。

#下列四种Connector完成全是立即解决来源于客户端Http要求 org.apache.coyote.http11.Http11Protocol:支持HTTP/1.1协议的连接器。 org.apache.coyote.http11.Http11NioProtocol:支持HTTP/1.1协议NewIO的连接器。 org.apache.coyote.http11.Http11Nio2Protocol:支持HTTP/1.1协议NewIO2的连接器。 org.apache.coyote.http11.Http11AprProtocol:应用APR(Apacheportableruntime)技术性的连接器,运用Native #下列四种完成方式则是与webserver相处 org.apache.coyote.ajp.AjpProtocol:应用AJP协议的连接器,完成与webserver(如Apachehttpd)中间的通讯 org.apache.coyote.ajp.AjpNioProtocol:SJP协议NewIO org.apache.coyote.ajp.AjpNio2Protocol:SJP协议NewIO2 org.apache.coyote.ajp.AjpAprProtocol:AJPAPR

说起它们的区别,BIO就是blockIO,这是最基本的IO方法。每个人都是根据这一点配备的:

<Connectorport=”8080” protocol=”HTTP/1.1” maxThreads=”150” connectionTimeout=”20000” redirectPort=”8443”/>

默认情况下,Tomcat7的以下版本号在bio模式下运行。从Tomcat8.5版开始,Tomcat就移除了对BIO的支持。

新IO是一种基于java.nio包和子包的IO方法。可以展示非阻塞IO方法,比传统的BIO效率更高。

每个人都配备了那样的新IO:

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

新IO和新IO2有什么区别?

新的IO2是tomcat8中导入的IO方法。我们可以这样装备它:

<Connectorport="8080"protocol="org.apache.coyote.http11.Http11Nio2Protocol" connectionTimeout="20000" redirectPort="8443"/>

apr等方法先进,这也是今天大家要解读的tomcatnative的关键功效。

APR和TomcatNative

apr的全称是ApachePortableRuntime,是一个长宽比很高的库,是ApacheHTTPServer2.x的关键APR有很多主要用途,包括浏览高级io函数(如sendfile、epoll和OpenSSL)、计算机 *** 作系统级函数(生成随机数、系统状态等。)和设备进程解决方案(共享内存、NT管道和Unix套接字)。

Tomcat可以根据JNI启用ApacheHTTPwebserver的关键动态链接库来解决文档加载或数据传输的实际 *** 作,从而大大提高了Tomcat对于静态数据文档的解决特性。

根据APR的应用,我们可以得到以下特征:

  • 需要非阻塞I/O和连接维护。
  • 支持OpenSSL和TLS/SSL。
  • TomcatNative是一个库,据此Tomcat可以应用APR。

    所以应用TomcatNative的前提是必须安装APR库、OpenSSL和JDK。

    我们可以按照以下方法安装apr和openssl:

    基于Debian的linux系统软件:

    apt-getinstalllibapr1.0-devlibssl-dev

    基于Rpm的Linux系统软件:

    yuminstallapr-developenssl-devel

    在windows下,tcnative是以dll的形式呈现的,所以可以直接下载应用。

    但是在linux下,由于服务平台的不同,tcnative必须在linux下独立编译程序。

    一般来说,我们可以在bin/tomcat-native.tar.gz寻找tcnative的源码包,缓解一下压力。

    首先运行配置命令:

    ./configure--with-apr=/usr/bin/apr-1-config\ --with-java-home=/home/jfclere/JAVA/jdk1.7.0_80/\ --with-ssl=yes\ --prefix=$CATALINA_HOME

    再次进行实际 *** 作:

    make&&makeinstall

    生成的lib文件可能会放在$CATALINA_HOME/lib中。

    在tomcat中应用APR

    安装tcnative后,可以在tomcat中应用APR。

    首先检查以下设备在conf/server.xml中是否可用:

    <ListenerclassName="org.apache.catalina.core.AprLifecycleListener"SSLEngine="on"/>

    然后必须更改$CATALINA_HOME/bin/setenv.sh,将tc-nativelib文件添加到LD_LIBRARY_PATH中。

    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib exportLD_LIBRARY_PATH

    与APR的最终连接:

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

    它工作了。

    从日志中,你会发现以下内容:

    org.Apache.catalina.core.aprlivecyclelistenerinit

    信息:加载了基于APR的ApacheTomcat本地库1.x.y。

    org.Apache.catalina.core.aprlivecyclelistenerinit

    信息:APR功能:IPv6[真],发送文件[真],接受过滤器[假],随机[真]。

    org.Apache.coyote.http11.http11apr协议初始化

    表示APR安装完成,已经应用。

    到目前为止,本文已经详细介绍了如何使用TomcatNative来提高TomcatIO的效率。有关TomcatNative如何提高TomcatIO效率的大量信息,请搜索您以前的文章或再次访问下面的相关文章。期待大家以后的支持!

    欢迎分享,转载请注明来源:内存溢出

    原文地址: http://outofmemory.cn/zz/774043.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存