最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年12月12日 08:54:47   作者:flydean程序那些事  
這篇文章主要介紹了使用Tomcat Native提升Tomcat IO效率的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

簡介

IO有很多種,從最開始的Block IO,到nonblocking IO,再到IO多路復(fù)用和異步IO,一步一步的將IO的性能提升做到極致。

今天我們要介紹一下怎么使用Tomcat Native來提升Tomcat IO的效率。

Tomcat的連接方式

Tomcat中使用連接器來處理與外部客戶端的通信。Connecter主要用來接受外部客戶端的請求,并轉(zhuǎn)交給處理引擎處理。

在Tomcat中有兩種Connector。一種是 HTTP connector, 一種是AJP connector。

HTTP connector大家應(yīng)該很好理解,它也是tomcat默認(rèn)使用的連接器。

還有一個連接器叫做AJP,AJP主要是用來和web服務(wù)器進(jìn)行通信用的,因為AJP協(xié)議的速度要比HTTP的快,所以AJP除了用來和其他webserver進(jìn)行通信之外,還可以通過AJP來構(gòu)建tomcat集群。

這兩種方式都支持4中協(xié)議,分別是BIO,NIO,NIO2和APR。

#以下四種Connector實現(xiàn)都是直接處理來自客戶端Http請求
org.apache.coyote.http11.Http11Protocol : 支持HTTP/1.1 協(xié)議的連接器。

org.apache.coyote.http11.Http11NioProtocol : 支持HTTP/1.1 協(xié)議+New IO的連接器。

org.apache.coyote.http11.Http11Nio2Protocol : 支持HTTP/1.1 協(xié)議+New IO2的連接器。

org.apache.coyote.http11.Http11AprProtocol : 使用APR(Apache portable runtime)技術(shù)的連接器,利用Native


#以下四種實現(xiàn)方法則是與web server打交道
org.apache.coyote.ajp.AjpProtocol:使用AJP協(xié)議的連接器,實現(xiàn)與web server(如Apache httpd)之間的通信

org.apache.coyote.ajp.AjpNioProtocol:SJP協(xié)議+ New IO

org.apache.coyote.ajp.AjpNio2Protocol:SJP協(xié)議+ New IO2

org.apache.coyote.ajp.AjpAprProtocol:AJP + APR

講下他們的區(qū)別,BIO就是block IO是最最基礎(chǔ)的IO方式, 我們通過這樣來配置:

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

Tomcat7以下版本在默認(rèn)情況下是以bio模式運行的。自Tomcat 8.5 版本開始,Tomcat就移除了對BIO的支持。

New IO是基于java.nio包及其子包的一種IO方式。能提供非阻塞IO方式,比傳統(tǒng)的BIO擁有與更加高效的運行效率。

我們這樣配置New IO:

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

New IO和New IO2有什么區(qū)別呢?

New IO2是tomcat8中引入的IO方式,我們可以這樣配置:

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

apr這種方式就高級了,這個是我們今天要講解的tomcat native的主要作用。

APR和Tomcat Native

apr的全稱是Apache Portable Runtime,它是一個高度可移植的庫,它是Apache HTTP Server 2.x的核心。 APR有許多用途,包括訪問高級IO功能(例如sendfile,epoll和OpenSSL),操作系統(tǒng)級別的功能(生成隨機(jī)數(shù),系統(tǒng)狀態(tài)等)和本機(jī)進(jìn)程處理(共享內(nèi)存,NT管道和Unix套接字)。

Tomcat可以通過JNI的形式調(diào)用Apache HTTP服務(wù)器的核心動態(tài)鏈接庫來處理文件讀取或網(wǎng)絡(luò)傳輸操作,從而大大地提高Tomcat對靜態(tài)文件的處理性能。

通過使用APR我們可以獲得如下的特性:

  • Non-blocking I/O和請求連接保持。
  • 支持OpenSSL和TLS/SSL。

Tomcat Native是一個庫,通過這個庫,Tomcat可以使用APR。

所以使用Tomcat Native的前提是需要安裝好APR library,OpenSSL和JDK。

我們可以通過下面的方式來安裝apr和openssl:

debian based linux系統(tǒng):

apt-get install libapr1.0-dev libssl-dev

rpm based Linux 系統(tǒng):

yum install apr-devel openssl-devel

在windows下面,tcnative是以一個dll的形式來提供的,我們直接下載使用就可以了。

但是在linux下面,因為平臺不同,所以在linux下面tcnative是需要自行編譯的。

一般來說我們可以在 bin/tomcat-native.tar.gz 找到tcnative的源碼包。將其解壓。

先運行configure命令:

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

再進(jìn)行make操作:

make && make install

生成的lib文件將會被放入$CATALINA_HOME/lib中。

在tomcat中使用APR

安裝好tcnative之后,我們就可以在tomcat中使用APR了。

先檢查一下conf/server.xml中是否有下面的配置:

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

然后我們需要修改 $CATALINA_HOME/bin/setenv.sh 將tc-native 的lib文件添加到LD_LIBRARY_PATH中。

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib
export LD_LIBRARY_PATH

最后添加APR的連接:

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

運行即可。

從日志中,我們會發(fā)現(xiàn)下面的內(nèi)容:

org.apache.catalina.core.AprLifecycleListener init

INFO: Loaded APR based Apache Tomcat Native library 1.x.y.

org.apache.catalina.core.AprLifecycleListener init

INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

org.apache.coyote.http11.Http11AprProtocol init

說明APR安裝完畢并且已經(jīng)在被使用了。

到此這篇關(guān)于使用Tomcat Native提升Tomcat IO效率的方法詳解的文章就介紹到這了,更多相關(guān)Tomcat Native提升Tomcat IO效率內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決“Unable to start embedded Tomcat“錯誤的完整指南

    解決“Unable to start embedded Tomcat“錯誤的完整

    在使用Spring Boot開發(fā)應(yīng)用程序時,有時可能會遇到"Unable to start embedded Tomcat"的錯誤,這可能是由多種原因引起的,本文將詳細(xì)介紹這個錯誤的常見原因以及解決方法,幫助你快速解決問題并順利啟動應(yīng)用程序
    2023-10-10
  • Linux下Tomcat8.0.44配置使用Apr的方法

    Linux下Tomcat8.0.44配置使用Apr的方法

    下面小編就為大家?guī)硪黄狶inux下Tomcat8.0.44配置使用Apr的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 解決Tomcat重新部署后圖片等資源被自動刪除的問題

    解決Tomcat重新部署后圖片等資源被自動刪除的問題

    這篇文章主要介紹了解決Tomcat重新部署后圖片等資源被自動刪除的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 分析Tomcat的工作原理

    分析Tomcat的工作原理

    這篇文章主要介紹了Tomcat的工作原理是怎樣的,幫助大家清楚 Tomcat 的工作原理和處理請求流程和分析,感興趣的朋友可以了解下
    2020-09-09
  • Tomcat配置IPV6的實現(xiàn)步驟

    Tomcat配置IPV6的實現(xiàn)步驟

    本文主要介紹了Tomcat配置IPV6的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Tomcat 是如何管理Session的方法示例

    Tomcat 是如何管理Session的方法示例

    這篇文章主要介紹了Tomcat 是如何管理Session的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 關(guān)于Keytool配置?Tomcat的HTTPS雙向認(rèn)證的問題

    關(guān)于Keytool配置?Tomcat的HTTPS雙向認(rèn)證的問題

    Keytool是一個Java數(shù)據(jù)證書的管理工具,?Keytool將密鑰(key)和證書(certificates)存在一個稱為keystore的文件中,這篇文章主要介紹了Keytool配置?Tomcat的HTTPS雙向認(rèn)證問題,需要的朋友可以參考下
    2022-06-06
  • tomcat虛擬路徑的配置方法匯總

    tomcat虛擬路徑的配置方法匯總

    本文給大家簡單匯總介紹了tomcat虛擬路徑的配置方法,十分的簡單實用,有需要的小伙伴可以參考下。
    2016-01-01
  • tomcat性能優(yōu)化之如何搭建Apr模塊

    tomcat性能優(yōu)化之如何搭建Apr模塊

    這篇文章主要介紹了tomcat性能優(yōu)化之如何搭建Apr模塊,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Tomcat 中如何給 web 項目配置虛擬目錄的方法

    Tomcat 中如何給 web 項目配置虛擬目錄的方法

    本篇文章主要介紹了Tomcat 中如何給 web 項目配置虛擬目錄的方法,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08

最新評論

巴楚县| 贵溪市| 林周县| 历史| 沧源| 冕宁县| 滦平县| 隆子县| 封丘县| 永靖县| 北安市| 阿拉善左旗| 石渠县| 石首市| 额尔古纳市| 平塘县| 寻甸| 利辛县| 蚌埠市| 盐城市| 西林县| 仲巴县| 垣曲县| 余姚市| 万安县| 丽水市| 五指山市| 格尔木市| 尚志市| 开远市| 苍山县| 福建省| 格尔木市| 五寨县| 扶余县| 满城县| 辛集市| 惠安县| 溆浦县| 漳州市| 友谊县|