电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:243日期:2023-03-19 16:51:28
目錄
  • 簡介
  • Tomcat的連接方式
  • APR和Tomcat Native
  • 在tomcat中使用APR

簡介

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

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

Tomcat的連接方式

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

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

HTTP connector大家應該很好理解,它也是tomcat默認使用的連接器。

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

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

#以下四種Connector實現都是直接處理來自客戶端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 : 使用APR(Apache portable runtime)技術的連接器,利用Native


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

org.apache.coyote.ajp.AjpNioProtocol:SJP協議+ New IO

org.apache.coyote.ajp.AjpNio2Protocol:SJP協議+ New IO2

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

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

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

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

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

我們這樣配置New IO:

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

New IO和New IO2有什么區別呢?

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),操作系統級別的功能(生成隨機數,系統狀態等)和本機進程處理(共享內存,NT管道和Unix套接字)。

Tomcat可以通過JNI的形式調用Apache HTTP服務器的核心動態鏈接庫來處理文件讀取或網絡傳輸操作,從而大大地提高Tomcat對靜態文件的處理性能。

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

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

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

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

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

debian based linux系統:

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

rpm based Linux 系統:

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

再進行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" />

運行即可。

從日志中,我們會發現下面的內容:

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安裝完畢并且已經在被使用了。

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

標簽: Tomcat
相關文章:
主站蜘蛛池模板: 锻造液压机,粉末冶金,拉伸,坩埚成型液压机定制生产厂家-山东威力重工官方网站 | 氟塑料磁力泵-不锈钢离心泵-耐腐蚀化工泵厂家「皖金泵阀」 | 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 | 滚珠丝杆升降机_螺旋升降机_丝杠升降机-德迈传动 | 工业铝型材-铝合金电机壳-铝排-气动执行器-山东永恒能源集团有限公司 | 航空障碍灯_高中低光强航空障碍灯_民航许可认证航空警示灯厂家-东莞市天翔航天科技有限公司 | 体视显微镜_荧光生物显微镜_显微镜报价-微仪光电生命科学显微镜有限公司 | 制氮设备-变压吸附制氮设备-制氧设备-杭州聚贤气体设备制造有限公司 | 安规_综合测试仪,电器安全性能综合测试仪,低压母线槽安规综合测试仪-青岛合众电子有限公司 | 硅PU球场、篮球场地面施工「水性、环保、弹性」硅PU材料生产厂家-广东中星体育公司 | 大学食堂装修设计_公司餐厅效果图_工厂食堂改造_迈普装饰 | 深圳希玛林顺潮眼科医院(官网)│深圳眼科医院│医保定点│香港希玛林顺潮眼科中心连锁品牌 | 济南网站建设|济南建网站|济南网站建设公司【济南腾飞网络】【荐】 | 电主轴,车床电磨头,变频制动电机-博山鸿达特种电机 | 展厅设计公司,展厅公司,展厅设计,展厅施工,展厅装修,企业展厅,展馆设计公司-深圳广州展厅设计公司 | 不锈钢搅拌罐_高速搅拌罐厂家-无锡市凡格德化工装备科技有限公司 | 外观设计_设备外观设计_外观设计公司_产品外观设计_机械设备外观设计_东莞工业设计公司-意品深蓝 | 淬火设备-钎焊机-熔炼炉-中频炉-锻造炉-感应加热电源-退火机-热处理设备-优造节能 | 微信小程序定制,广州app公众号商城网站开发公司-广东锋火 | 冷库安装厂家_杭州冷库_保鲜库建设-浙江克冷制冷设备有限公司 | 健康管理师报考条件,考试时间,报名入口—首页 | 定制液氮罐_小型气相液氮罐_自增压液氮罐_班德液氮罐厂家 | 2025世界机器人大会_IC China_半导体展_集成电路博览会_智能制造展览网 | 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | 北京浩云律师事务所-企业法律顾问_破产清算等公司法律服务 | 超声波分散机-均质机-萃取仪-超声波涂料分散设备-杭州精浩 | 标准品网_标准品信息网_【中检计量】| 直流大电流电源,燃料电池检漏设备-上海政飞 | 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 电子厂招聘_工厂招聘_普工招聘_小时工招聘信息平台-众立方招工网 | 污水提升器,污水提升泵,地下室排水,增压泵,雨水泵,智能供排水控制器-上海智流泵业有限公司 | 美甲贴片-指甲贴片-穿戴美甲-假指甲厂家--薇丝黛拉 | 活性炭-蜂窝-椰壳-柱状-粉状活性炭-河南唐达净水材料有限公司 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 膏方加工_丸剂贴牌_膏滋代加工_湖北康瑞生物科技有限公司 | 艺术生文化课培训|艺术生文化课辅导冲刺-济南启迪学校 | 科研ELISA试剂盒,酶联免疫检测试剂盒,昆虫_植物ELISA酶免试剂盒-上海仁捷生物科技有限公司 | 万家财经_财经新闻_在线财经资讯网 | 船用锚链|专业锚链生产厂家|安徽亚太锚链制造有限公司 | 箱式破碎机_移动方箱式破碎机/价格/厂家_【华盛铭重工】 | 楼承板设备-楼承板成型机-免浇筑楼承板机器厂家-捡来 |