如何使用Tomcat本地提升Tomcat IO效率

  介绍

本篇内容介绍了”如何使用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的源码包。将其解压。

先运行配置命令:

如何使用Tomcat本地提升Tomcat IO效率