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++ - 支援 C++ 的 gcc 擴充

  • 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 clone 中,於 artemis-native 目錄下執行 shell 指令碼 compile-native.sh。此指令碼將呼叫適當的命令來執行原生建置。

如果您想瞭解更多資訊,請參閱 cmake 網頁