Apache ActiveMQ "Classic" (及先前版本) 可以透過執行命令 ./bin/activemq run 直接執行。ActiveMQ Artemis broker 遵循不同的範例,專案發行版作為 broker 的「home」目錄,並建立一個或多個 broker 「實例」,這些實例引用「home」目錄中的資源(例如 jar 檔案),這些資源可以在 broker 實例之間安全地共享。因此,必須先建立 broker 的實例才能執行。乍看之下這似乎是一個額外負擔,但例如在更新到新的 Artemis 版本時,它會變得非常實用。

若要建立 Artemis broker 實例,請導覽至 Artemis 的 home 資料夾並在命令列執行:./bin/artemis create /path/to/myBrokerInstance

由於這種分離,在大多數情況下升級 Artemis 非常容易。

建議選擇與 Apache Artemis 下載位置不同的資料夾。例如,這種分離允許您使用相同的 Artemis「home」目錄執行多個 broker 實例。它也簡化了更新到較新版本 Artemis 的過程。

1. 一般升級程序

升級可能需要 版本 中所述的特定步驟,但一般過程如下

  1. 導覽至正在升級的 broker 實例的 etc 資料夾

  2. 開啟 artemis.profileartemis-utility.profile (在 Windows 上為 artemis.profile.cmdartemis-utility.profile.cmd)。它包含一個與升級相關的屬性

    ARTEMIS_HOME='/path/to/apache-artemis-version'

如果您在 Windows 上以服務方式執行 Artemis,則必須執行以下額外步驟

  1. 導覽至正在升級的 broker 實例的 bin 資料夾

  2. 開啟 artemis-service.xml。它包含一個與升級相關的屬性

    <env name="ARTEMIS_HOME" value="/path/to/apache-artemis-version"/>

ARTEMIS_HOME 屬性用於將實例與 home 目錄連結。在大多數情況下,只需將此屬性的值更改為新 broker home 的位置,即可將實例升級到較新版本。請參閱前面提到的 版本 文件,了解其他升級步驟(如果需要)。

也可以自動執行許多這些更新步驟,如下一節所示。

2. 升級工具

可以使用新 broker 下載中的升級輔助工具來刷新先前版本現有 broker 實例中的各種設定檔和腳本,從而自動化許多將實例升級到使用新版本的工作。

您應該在執行命令之前備份現有的 broker 實例。
cd $NEW_ARTEMIS_DOWNLOAD/bin/
./artemis upgrade PATH_TO_UPGRADING_INSTANCE

broker 實例腳本 bin/artemis 以及設定檔 etc/artemis.profileetc/artemis-utility.profile(在 Windows 上為 artemis.cmdartemis.cmd.profileartemis-utility.cmd.profile)將更新為新版本,並將其 ARTEMIS_HOME 設定為參考新的 broker 版本 home 路徑。如果需要(例如,如果您要從 2.27.0 之前的版本遷移),該工具也會建立新的 <instance>/etc/log4j2.properties<instance>/etc/log4j2-default.properties 設定檔,並移除舊的 <instance>/etc/logging.properties 檔案(如果存在)。

broker.xml 檔案和資料將保持原樣。

在刷新檔案的過程中,對舊設定檔和腳本的大部分現有客製化設定將會遺失。因此,您應該將舊設定檔與刷新後的設定檔進行比較,然後根據需要移植您可能進行的任何遺失的客製化設定。升級命令本身會將其更改的較舊檔案複製到實例目錄中的 old-config-bkp. 資料夾中。

同樣地,如果您客製化了舊的 logging.properties 檔案,您可能需要為新的 log4j2.propertieslog4j2-utility.properties 檔案準備類似的變更。