Apache Pulsar Java 客户端占用过多内存(OOM)

Apache Pulsar Java client taking too much memory (OOM)

我写了一个带有 Spring 引导的简单 Apache Pulsar 客户端 - 一个初始化为 bean 的 Pulsar-producer,它将在其余控制器中用于将传入的 api 消息发布到 Pulsar,以及一个消费者消耗消息,在控制台中打印一些值并确认。

截至目前,应用程序非常简单,但在加载此 spring-boot 应用程序时,我发现内存达到峰值,有时会出现 OOM。使用带有 Spring-boot 的 Pulsar 客户端时是否需要使用任何特定配置?

代码大部分是 Pulsar 文档中找到的代码。

我回答这个问题是为了记录这个问题 - 不要 使用循环来消费消息,而是采用 MessageListener 通过

订阅消费者

consumer.messageListener(new Myconsumer())

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

文档没有提到这一点,但我发现浏览消费者 api。