APR(Apache Portable Runtime),即Apache可移植运行库,正如官网所言,APR的使命是创建和维护一套软件库,以便在不同操作系统(Windows、Linux等)底层实现的基础上提供统一的API。通过APR的API,程序开发者可以在开发阶段不必考虑平台的差异性,也不必关心程序的最终构建环境。减少程序开发者编写特殊代码区分不同操作系统以避免系统缺陷或者利用系统特性的工作。

APR为应用程序开发提供统一的API,对于某些操作系统不支持的功能,APR则进行模拟实现,因此采用APR可以真正做到跨平台应用开发。

APR最早是Apache HTTP Server的一部分, Apache基金会考虑到其通用性,后来将其作为独立的项目进行维护。

APR提供的主要功能模块包括:内存分配及内存池、原子操作、文件I/O、锁、内存映射、哈希表、网络I/O、轮询、进程及线程操作等等,全部模块列表可详细参见:http://apr.apache.org/docs/apr/1.5/modules.html。

通过采用APR,Tomcat可以获得高度可扩展性以及优越的性能,并且可以更好的与本地服务器技术集成,从而可以使Tomcat作为一款通用的Web服务器使用,而不仅仅作为轻量级应用服务器。在这种情况下,Java将不再是一门侧重于后端的编程语言,也可以更多的用于成熟的Web服务器平台。

Tomcat启动时,会自动检测系统是否安装了APR,如果已安装,则自动采用APR进行I/O处理(除非已指定Connector的protocol属性为具体的协议类)。

在Tomcat中使用APR需要安装三个本地组件:

  • APR库
  • APR JNI封装包(Tomcat使用)
  • OpenSSL

apr的使用的更多相关文章

  1. Tomcat之APR错误

    在发布Apache Tomcat的时候,突然出现如下错误: An incompatible version 1.1.31 of the APR based Apache Tomcat Native l ...

  2. Ubuntu 下配置apache和APR

    软件环境:ubuntu14.04  虚拟机Vmware  软件:http://httpd.apache.org/  httpd-2.2.29.tar.gz  不需要单独下载APR. 1.解压apach ...

  3. 【转】Tomcat 的三种(bio,nio.apr) 高级 Connector 运行模式

    转载地址:http://www.oschina.net/question/54100_16195   tomcat的运行模式有3种.修改他们的运行模式.3种模式的运行是否成功,可以看他的启动控制台,或 ...

  4. j.APR连接器整体框图(含SSL实现分析)

    APR连接器的思路和bio,nio的整体架构也是类似的,可以看到下面的整体框图: 第一个区别是,对于从Acceptor线程中的socket解析这块,无论是nio还是bio都是在Acceptor线程内直 ...

  5. m.Tomcat使用openssl走APR通道配置单向和双向认证

    引用自: http://blog.csdn.net/gtuu0123/article/details/5827800(Tomcat的SSL单向认证)  http://blog.csdn.net/gtu ...

  6. i.Windows下APR安装过程

    1.下载安装native Windows下的APR安装和配置比较简单,可以直接下载Tomcat-native的二进制的版本包: 下载之后的目录结构为: tcnative-1.dll这个库已经包含了AP ...

  7. k.APR通道特殊配置

    APR/native specific configuration The following attributes are specific to the APR/native connector. ...

  8. Tomcat APR & Linux Optimization

    一.简介 APR(Apache portable Run-time libraries)模式:简单理解,就是从操作系统级别解决异步IO问题,大幅度的提高服务器的处理和响应性能, 也是Tomcat运行高 ...

  9. centos6.3(64位) 安装apr

    安装apr来提高tomcat 的可伸缩性和性能 ? 1 cd /usr/local/ 1  下载apr 和 apr-util最新版 ? 1 2 3 wget  http://apache.fayea. ...

  10. Tomcat Connector三种运行模式(BIO, NIO, APR)的比较和优化

    Tomcat Connector的三种不同的运行模式性能相差很大,有人测试过的结果如下: 这三种模式的不同之处如下: BIO: 一个线程处理一个请求.缺点:并发量高时,线程数较多,浪费资源. Tomc ...

随机推荐

  1. bootstrap警告框、进度条和列表组

    警告框   <div class="container">      <div class="alert alert-success" rol ...

  2. git命令收集

    $ git clone ... $ git status 查看状态 $ git commit -am "XXX" 提交信息 $ git commit -am "XXXX& ...

  3. 带有res资源文件的项目 需要导成jar包 供别人使用的解决方法

    比如说自己的成品项目,名字是MyObject,需要导出成jar包,让别人的项目调用,但是自己的项目还包含有图片.layout布局.libs里面的依赖包等等: 步骤: 1.MyObject项目需要“is ...

  4. uvm_monitor——借我一双慧眼

    monitor 用来捕获(监视)和检查总线的信号是否满足预期的要求.所有的user_monitor 继承自uvm_monitor,uvm_monitor继承自uvm_component,从源代码来看里 ...

  5. /etc/default/useradd

    系统默认的shell在,/etc/default/useradd 中,添加用户的时候如果不指定shell,默认的shell就是该文件下制定的文件

  6. 解决在安装Fiddler4.6版本后,在手机上安装证书出现的问题解决方法

    解决在安装Fiddler4.6版本后,在手机上安装证书出现的问题解决方法 设置fiddler抓手机包后,在手机上访问http://ip:port,出现如下问题: 问题:creation of the ...

  7. django连接Oracle过程中出现的问题

    开始时版本信息: python 3.6   +   ce_oracle 6 最终版本信息: python 3.5   + ce_oracle 5.2 ce_oracle版本问题 cx_Oracle-5 ...

  8. valgrind测试程序内存泄漏问题

    1.用wincap将valgrind放入系统任意路径下,解压 2.  登录主机后台在需要测试程序的路径下运行此行命令: /opt/valgrind/bin/valgrind ./itb(例) 3. 跑 ...

  9. BestCoder Round#15 1002-Instruction

    http://acm.hdu.edu.cn/showproblem.php?pid=5083 官方题解——> 1002 Instruction 先考虑编码,首先找到operation对应的编码, ...

  10. C++ _ const的用法,特别是用在函数前面与后面的区别!

    在普通的非 const成员函数中 this的类型是一个指向类类型的 const指针.可以改变this所指向的值,但不能改变 this所保存的地址. 在 const成员函数中 this的类型是一个指向 ...