Reactor RabbitMQ Потребитель "rabbitmq-nio" java.lang.OutOfMemoryError: пространство кучи Java

Я реализую Java-приложение с весенней загрузкой, которое потребляет много маленьких (<5 КБ) json-сообщений. В настоящее время я сталкиваюсь со следующей проблемой в нашей развернутой среде.

"rabbitmq-nio" java.lang.OutOfMemoryError: пространство кучи Java

Мы используем подтверждение вручную и еще не подтверждаем никаких сообщений. Мы установили предварительную настройку на 25 на данный момент. В настоящее время для JVM установлено значение 2 ГБ, что должно быть достаточно для размера этих сообщений (25x15x5 = 1875 КБ). Я подозреваю, что какая-то утечка памяти связана с тем, как пишется наш потребитель. У кого-нибудь есть советы, почему это может происходить?

Я ограничил значение предварительной выборки до 25. Я попытался увеличить объем памяти JVM до 2 ГБ.

Мы вызываем этот метод получателя для 15 очередей при запуске приложения Spring.

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 ответов

Другие вопросы по тегам