Chapter 40. Libaio平台专有库

HornetQ发布包中包括一个平台专有的库,它可以使HornetQ使用Linux操作系统的libaio。

libaio是Linux项目的一个库。它将用户提交的写操作用异步的方式执行。通过 回调用户的代码来通知写操作的完成。

通过配置,HornetQ可以使用这个库来访问高性能的日志,具体请参见 Chapter 15, 持久化

下面列出了HornetQ所带的平台专有库文件:

当使用libaio时,HornetQ会在库路径中寻找并装 载这些文件。

40.1. 库文件的编译

如果你的Linux平台不是x86_32或x86_64(比如Itanium 64或IBM Power),你需要自己编译相应的库文件, 因为HornetQ不提供这些平台的库文件。

40.1.1. 安装要求

Note

目前libaio只在Linux上有。所以它不可能在其它操作系统上编译。

编译需要autoconf工具,它用来简化编译过程。除此之外还需要一些安装包:

  • gcc - C 编译器

  • gcc-c++ or g++ - gcc的c++编译工具扩展

  • autoconf - 自动编译工具

  • make - make 工具

  • automake - make文件自动生成工具

  • libtool - 库连接工具

  • libaio - 磁盘异步IO库

  • libaio-dev - libaio的编译支持

  • 完整的JDK,JAVA_HOME要指向正确的位置

如果在RHEL或Fedora上进行安装,输入以下命令:

sudo yum install automake libtool autoconf gcc-g++ gcc libaio libaio-dev make

如果是 debian系统,则:

sudo apt-get install automake libtool autoconf gcc-g++ gcc libaio libaio-dev make

Note

在有些Linux的版本中上述的安装包名可能有一些差别。(例如Fedora中的gcc-c++在Debian系统中 的名称为g++)

40.1.2. 开始编译

在HornetQ发布包的native-src目录下,执行shell脚本 bootstrap。这个脚本会调用 automake以及make来创建所有的make文件和专有库。

someUser@someBox:/messaging-distribution/native-src$ ./bootstrap 
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p

...

configure: creating ./config.status
config.status: creating Makefile
config.status: creating ./src/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands

...

编译好的库文件在./native-src/src/.libs/libHornetQAIO.so。将该文件移到发布包的 bin目录下,或者你的库目录 所指向的目录即可。

如果你修改了HornetQ的libaio代码,只需要在native-src目录下直挂运行make即可完成编译。