【问题标题】:How does Apache Artemis manage heap space (RAM)Apache Artemis 如何管理堆空间 (RAM)
【发布时间】:2017-07-18 18:23:18
【问题描述】:

在我们的项目中,我们使用两个队列,一个用于正常处理,另一个用于错误处理。 “错误”队列有时会充满“错误”消息,这些消息一直坐在那里,直到有人检查它们。在某些情况下,“错误”队列会填满大量消息,然后 JVM 会耗尽堆。

例如,当前,JVM 配置了最大 4GB 堆,并且随机获得 OOM 异常。我们使用了 MemoryAnalyzer 和 IBM Heap Analyzer,两者都有点指向 Artemis。当我检查文件系统上日志的大小时,大约是 5GB。

我们发送:

  • 小消息
  • 持久的
  • 不使用 Netty 或远程处理(仅使用 Artemis 进行异步 处理)

所以,我的问题是关于 Apache Artemis 堆管理和建议:

  1. 它是否也将持久消息存储在 RAM 中,即使它们已经存储在文件系统中?
  2. 如果 #1 为真,控制/限制 Artemis 分配的 RAM 数量的策略是什么?

感谢任何帮助!

【问题讨论】:

    标签: java activemq-artemis


    【解决方案1】:

    对于那些对此主题感兴趣的人,Artemis 论坛上提供了答案: http://activemq.2283324.n4.nabble.com/How-does-Apache-Artemis-manage-heap-space-RAM-tt4723220.html

    【讨论】:

      猜你喜欢
      • 2014-03-05
      • 1970-01-01
      • 2015-02-18
      • 2020-12-20
      • 1970-01-01
      • 1970-01-01
      • 2020-10-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多