Java-клиент Apache Pulsar, занимающий слишком много памяти (OOM)

Я написал простой клиент Apache Pulsar с загрузкой Spring - производитель pulsar, инициализированный как beans, который будет использоваться в остальном контроллере для публикации входящих сообщений api в Pulsar, и потребитель, который потребляет сообщение, печатает некоторые значения в консоли и подтверждает.

На данный момент приложение очень простое, но в тот момент, когда загружается это приложение с весенней загрузкой, я вижу пик памяти, иногда получающий OOM. Есть ли какая-то конкретная конфигурация, которая будет использоваться при использовании клиента Pulsar с Spring-boot?

Код в основном тот, что был найден в документации Pulsar.


person Vijay Veeraraghavan    schedule 05.12.2019    source источник
comment
Наслаждайтесь моей библиотекой Pulsar для Spring Boot или вдохновляйтесь ею в своем следующем проекте: github.com / majusko / pulsar-java-spring-boot-starter   -  person Mário Kapusta    schedule 13.08.2020


Ответы (1)


Я отвечаю на это, чтобы документировать эту проблему - не используйте циклы для потребления сообщений, вместо этого используйте MessageListener, подписанный на потребителя через

consumer.messageListener(new Myconsumer())

or

consumer.messageListener((consumer, msg)->{//do something})

Документы не упоминали об этом, но я нашел, что просматривал пользовательский API.

person Vijay Veeraraghavan    schedule 06.12.2019