0

我的 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}");

在此处输入图像描述

4

0 回答 0