Reactor RabbitMQ使用者“ rabbitmq-nio” java.lang.OutOfMemoryError:Java堆空间

时间:2019-02-07 21:25:45

标签: project-reactor reactor-rabbitmq

我正在实现一个使用大量小(<5KB)json消息的Spring Boot Java应用程序。我目前在我们的部署环境中遇到以下问题。

“ rabbitmq-nio” java.lang.OutOfMemoryError:Java堆空间

我们正在使用手动确认,但尚未确认任何消息。我们现在将预取设置设置为25。 JVM当前设置为最大2GB,对于这些消息的大小来说应该足够了(25x15x5 = 1875KB)。我怀疑我们的使用者的编写方式会发生某种内存泄漏。有谁知道为什么会发生这种情况?

我将预取值限制为25 我尝试将JVM内存增加到2GB

在Spring应用程序启动时,我们正在将此接收器方法调用15个队列。

public Flux<Message> consume(String queue, boolean ack, ConsumeOptions  consumeOptions) {
return sender
    .declareQueue(Config.setupQueueSpecification(queue))
.thenMany(receiver.consumeManualAck(queue, consumeOptions))
.doOnNext(ad -> {
    if (ack) {
        ad.ack();
    }
})
.map(ad -> Message.fromBytes(ad.getBody()));

}

我希望接收方使用所有15个队列,而不会出现“ rabbitmq-nio” java.lang.OutOfMemoryError:Java堆空间

0 个答案:

没有答案
相关问题