2017-02-27 28 views
0

在我們的項目中,我們使用兩個隊列,一個用於正常處理,另一個用於錯誤。 「錯誤」隊列有時會充滿「錯誤」消息,這些消息正坐在那裏,直到人們檢查出來。在某些情況下,「錯誤」隊列會填充大量消息,然後JVM將耗盡堆。例如,當前,配置最大4GB堆的JVM,並隨機獲得OOM異常。我們使用了MemoryAnalyzer以及IBM Heap Analyzer,都有點指向Artemis。當我檢查文件系統上日誌的大小時,大小約爲5GB。Apache Artemis如何管理堆空間(RAM)

送:

  • 小消息
  • 持續
  • 不使用的Netty或遠程(只使用阿爾特彌斯異步 處理)

所以,我的問題是關於Apache阿蒂米斯堆管理和建議:

  1. 它是否也將持久性消息存儲在RAM中,即使它們已存儲在文件系統中?
  2. 如果#1屬實,控制/限制Artemis分配的內存量的策略是什麼?

感謝任何幫助!

回答