我的 Camel K 路线出现 OutOfMemoryError。我正在使用SEDA(一个生产者和多个消费者)并以每秒 10,000 个事件的速度提供事件,即使我使用多个消费者也会引发错误,有人知道如何提高性能吗?
我试图增加消费者数量,但问题尚未解决,我尝试增加内存,但内存队列占用了太多内存。
错误信息:
2021-12-01 17:42:58,401 syslog-basic-68d776c9b4-js4cd io.quarkus.bootstrap.runner.QuarkusEntryPoint[1] WARN [io.net.cha.AbstractChannelHandlerContext] (Camel (camel-1) thread #1 - NettyConsumerExecutorGroup) An exception 'java.lang.OutOfMemoryError: Java heap space' [enable DEBUG level for full stacktrace] was thrown by a user handler's exceptionCaught() method while handling the following exception:: java.lang.OutOfMemoryError: Java heap space
这是我的 SEDA 路由的源代码:
from("netty:udp://" + HOST + ":" + PORT + "?sync=false&receiveBufferSize=16777216")
// .log("in: ${body}")
.to("seda:next?size=5000&timeout=0&blockWhenFull=true");
from("seda:next?concurrentConsumers=5")
.unmarshal(myDataFormat)
.routePolicy(myPolicy)
.process(myProcessor)
.choice()
.when(body().contains(MISSING_REQUIRED_FIELDS)).to("log:warning").otherwise()
.log("log:${body}");