如果您在 broker.xml 中啟用 journal-retention-directory
,ActiveMQ Artemis 將會在此資料夾中保留每個通過代理程式的資料副本。
<configuration...>
<core...>
...
<journal-retention-directory unit="DAYS" period="365" storage-limit="10G">history</journal-retention-directory>
...
</core>
</configuration>
ActiveMQ Artemis 將會保留每個產生的日誌檔案副本,直到設定的保留期限(以選擇的單位為準)。在上面的範例中,系統將會保留所有長達 365 天的日誌檔案。
也可以限制保留目錄中保留的檔案數量。您可以設定儲存空間限制,當檔案數量超過設定的儲存空間限制時,系統將會開始移除較舊的檔案。
請注意,儲存空間限制是可選的,但是您需要小心,不要讓保留資料夾的磁碟空間耗盡,否則代理程式可能會因為嚴重的 IO 故障而關閉。
您可以使用 CLI 工具來檢查和從歷史記錄中復原資料,只需將日誌資料夾設定為保留目錄即可。
範例
./artemis data print --journal ../data/history
1. 分頁與大型訊息
啟用保留功能後,分頁和大型訊息也會儲存在保留資料夾中以進行重播,因此重播也適用於分頁和大型訊息。
2. 非持久性訊息
非持久性訊息永遠不會儲存在代理程式中的任何位置。如果您打算保留資料,您的生產者應該使用耐用訊息。
1. 從保留區復原資料
若要從保留資料夾復原資料,您可以使用管理主控台上的 replay 方法。

代理程式將會根據您傳遞的參數掃描檔案集,並將這些方法發送到您選定的目標佇列。
1.1. CLI 復原操作
CLI 復原操作旨在作為一個低階操作,其中資料會被讀取並直接復原到一組日誌檔案中。請注意,您絕對不應該操作正在使用的代理程式所使用的日誌檔案,因為這可能會危及您的資料檔案和正在執行的代理程式的完整性。
./artemis data recovery --journal ../data/history --target ../data/recovered --large-messages ../data/large-messages