ActiveMQ非持久交付模式限制?

问题描述:

我使用,我需要以下要求ActiveMQ非持久交付模式限制?

  • 有非常快的消费者作为我的生产者都已经非常快
  • 在租赁需要每秒
  • 不按规定2K的消息处理来处理的ActiveMQ /消费消息再次发生服务器崩溃或其他故障。我可以再次触发整个过程。
  • 需要运行非常正常的配置服务器 - 4Gib RAM

下面

问题/问题

  • 我不知道怎么的ActiveMQ在non-persistent delivery mode情况下商店的消息,是有可能,一旦我的队列大小超出了某些限制我的过程将内存不足的错误失败?我在问这个问题,因为为我测试整个过程非常困难。所以我在触发这个过程之前需要知道限制。
  • 如果non-persistent delivery mode是不符合我的以上要求,是否有任何性能调整提示,我可以达到我的要求与persistent delivery modetcp://)。我已经用这种模式进行过测试,但似乎消费者在这里速度很慢。此外,我已经尝试使用DUPS_OK_ACKNOWLEDGE,以便让我的消费者快速获得persistent delivery mode,但没有运气。

注:我使用最新的ActiveMQ版本5.14

我不知道如何存储在非持久传递模式情况下的ActiveMQ消息

ActiveMQ的存储消息在存储器中首先,它也将它交换到磁盘(activemq的数据路径中有一个tmp_storage文件夹)。

是有可能,一旦我的队列大小超出了某些限制

我从来没有在ActiveMQ中遇到内存不足,即使有大约100万条信息我的过程将内存不足错误而失败。

您还可以通过生产者流量控制(http://activemq.apache.org/producer-flow-control.html)确认。 当没有消耗太多的消息时,可以让生产者挂起。

而关于持久交付的表现,我也没有很好的方法。

+0

感谢您的回复@MallowFox ..你能解释一下关于'producer-flow'的一些信息。根据我的理解,它是自动配置的权利?或者我们是否应该在重负荷的情况下做任何事情来减缓生产者流量? –

+0

@Vishal Zanzrukia您只需要在activemq的config xml中设置memoryUsage限制和tempUsage限制。当负载很重时,生产者会自动放慢速度。 – Solo