Apache ActiveMQ Artemis 分发了一个原生库,作为其快速日志在 Apache ActiveMQ Artemis 和 Linux libaio 之间的桥梁。

libaio 是一个库,作为 Linux 内核项目的一部分开发。使用 libaio,我们将写入提交到操作系统,在那里它们被异步处理。一段时间后,操作系统将在它们完成处理时调用我们的代码。

如果配置为这样做,我们在我们的高性能日志中使用它,请参见 持久性

这些是 Apache ActiveMQ Artemis 分发的原生库

  • libartemis-native-64.so - x86 64 位

  • 我们在 2017 年初之前发布了 32 位版本。虽然它不再在发行版中提供,但如果需要,仍然可以编译到 32 位环境。

当使用 libaio 时,Apache ActiveMQ Artemis 将始终尝试加载这些文件,只要它们在 库路径 中。

1. 运行时依赖

如果你只想使用提供的原生二进制文件,你需要安装所需的 libaio 依赖。

你可以使用以下步骤以 root 用户身份安装 libaio

使用 yum,(例如,在 Fedora 或 Red Hat Enterprise Linux 上)

yum install libaio

使用 aptitude,(例如,在 Ubuntu 或 Debian 系统上)

apt-get install libaio1

2. 编译原生库

如果你在除了 x86_32 或 x86_64 之外的平台上使用 Linux(例如 Itanium 64 位或 IBM Power),你可能需要编译原生库,因为我们没有为那些平台发行二进制文件。

3. 编译依赖

原生层仅在 Linux 上可用。如果你在除了 Linux 之外的平台上,原生编译将无法工作

这些是在 Linux 上编译所需的软件包

  • gcc - C 编译器

  • gcc-c++ 或 g++ - gcc 的扩展,支持 C++

  • libtool - 用于链接编辑原生库的工具

  • libaio - 用于磁盘异步 IO 内核函数的库

  • libaio-dev - 用于 libaio 的编译支持

  • cmake

  • 已安装的完整 JDK,并将环境变量 JAVA_HOME 设置为其位置

要在 RHEL 或 Fedora 上执行此安装,你只需在命令行中键入以下内容

sudo yum install libtool gcc-c++ gcc libaio libaio-devel cmake

或者在 Debian 系统上

sudo apt-get install libtool gcc-g++ gcc libaio libaio- cmake

根据版本和 Linux 发行版,你可能会发现软件包名称略有不同。(例如,Fedora 上的 gcc-c++ 与 Debian 系统上的 g++)

4. 调用编译

在源代码发行版或 git 克隆中,在 artemis-native 目录中,执行 shell 脚本 compile-native.sh。此脚本将调用适当的命令来执行原生构建。

如果你需要更多信息,请参阅 cmake 网页