本篇内容介绍了”如何使用Tomcat本地提升Tomcat IO效率”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
简介
IO有很多种,从最开始的阻塞IO,到非阻塞IO,再到输入输出多路复用和异步IO,一步一步的将IO的性能提升做到极致。
今天我们要介绍一下怎么使用Tomcat本机来提升Tomcat IO的效率。
Tomcat的连接方式
Tomcat中使用连接器来处理与外部客户端的通信.Connecter主要用来接受外部客户端的请求,并转交给处理引擎处理。
在Tomcat中有两种连接器。一种是HTTP连接器,一种是美国连接器。
HTTP连接器大家应该很好理解,它也是Tomcat默认使用的连接器。
还有一个连接器叫做美国精神,美国主要是用来和web服务器进行通信用的,因为美国协议的速度要比HTTP的快,所以美国除了用来和其他网络服务器进行通信之外,还可以通过美国来构建Tomcat集群。
这两种方式都支持4中协议,分别是生物,NIO, NIO2和4月
#以下四种连接器实现都是直接处理来自客户端HTTP请求 时间:org.apache.coyote.http11.Http11Protocol 支持HTTP/1.1,协议的连接器。 时间:org.apache.coyote.http11.Http11NioProtocol 支持HTTP/1.1,协议+ New IO的连接器。 时间:org.apache.coyote.http11.Http11Nio2Protocol 支持HTTP/1.1,协议+ New IO2的连接器。 时间:org.apache.coyote.http11.Http11AprProtocol 使用4月(Apache portable 运行时)技术的连接器,利用 #以下四种实现方法则是与web 服务器打交道 org.apache.coyote.ajp.AjpProtocol:使用美国协议的连接器,实现与web 服务器(如Apache httpd)之间的通信 org.apache.coyote.ajp.AjpNioProtocol: SJP协议+,New IO org.apache.coyote.ajp.AjpNio2Protocol: SJP协议+,New IO2 org.apache.coyote.ajp.AjpAprProtocol: AJP +, 4月
讲下他们的区别,生物就是阻塞IO是最最基础的IO方式,我们通过这样来配置:
& lt; Connector ,端口=" 8080 ",, 协议=癏TTP/1.1” ,, maxThreads=" 150 ",, connectionTimeout=" 20000 ",,, redirectPort=" 8443 ",/在
Tomcat7以下版本在默认情况下是以生物模式运行的。自Tomcat 8.5版本开始,Tomcat就移除了对生物的支持。
新的IO是基于java。nio包及其子包的一种IO方式。能提供非阻塞IO方式,比传统的生物拥有与更加高效的运行效率。
我们这样配置新的IO:
& lt; Connector 港口=?080“,协议=皁rg.apache.coyote.http11.Http11NioProtocol" connectionTimeout=?0000”; redirectPort=?443“,/在
新的IO和IO2有什么区别呢?
新IO2是tomcat8中引入的IO方式,我们可以这样配置:
& lt; Connector 港口=?080“,协议=皁rg.apache.coyote.http11.Http11Nio2Protocol" connectionTimeout=?0000”; redirectPort=?443“,/在
4月这种方式就高级了,这个是我们今天要讲解的tomcat本机的主要作用。
4月和tomcat原生
4月的全称是Apache Portable Runtime,它是一个高度可移植的库,它是Apache HTTP服务器2。x的核心。4月有许多用途,包括访问高级IO功能(例如sendfile, epoll和OpenSSL),操作系统级别的功能(生成随机数,系统状态等)和本机进程处理(共享内存,NT管道和Unix的套接字)。
Tomcat可以通过JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,从而大大地提高Tomcat对静态文件的处理性能。
通过使用4月我们可以获得如下的特性:
- <李>
非阻塞I/O和请求连接保持。
李> <李>支持OpenSSL和TLS/SSL。
李>Tomcat本地是一个库,通过这个库,Tomcat可以使用4月
所以使用Tomcat原生的前提是需要安装好4月库,OpenSSL和JDK。
我们可以通过下面的方式来安装4月和OpenSSL:
基于debian linux系统:
apt-get install libapr1.0-dev libssl-dev
基于rpm的linux系统:
yum install apr-devel openssl-devel
在windows下面,tcnative是以一个dll的形式来提供的,我们直接下载使用就可以了。
但是在linux下面,因为平台不同,所以在linux下面tcnative是需要自行编译的。
一般来说我们可以在bin/tomcat-native.tar。广州找到tcnative的源码包。将其解压。
先运行配置命令: