java - Java Kafka 控制台消费者堆空间不足
问题描述
我在控制台中运行以下命令。kafka-console-consumer
并收到内存不足错误:java.lang.OutOfMemoryError: Java heap space
。我该如何解决这个问题?尝试应用此资源,但我没有主题文件。
安慰:
kafka-console-consumer --bootstrap-server localhost:9092 --topic encounter.personEvent
应用程序.Yml
kafka:
topic: encounter
event: personEvent
下面的错误信息:
ERROR Error processing message, terminating consumer process: (kafka.tools.ConsoleConsumer$)
java.lang.OutOfMemoryError: Java heap space
at java.base/java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:64)
at java.base/java.nio.ByteBuffer.allocate(ByteBuffer.java:363)
at org.apache.kafka.common.memory.MemoryPool$1.tryAllocate(MemoryPool.java:30)
at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:113)
at org.apache.kafka.common.network.KafkaChannel.receive(KafkaChannel.java:452)
at org.apache.kafka.common.network.KafkaChannel.read(KafkaChannel.java:402)
at org.apache.kafka.common.network.Selector.attemptRead(Selector.java:674)
at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:576)
at org.apache.kafka.common.network.Selector.poll(Selector.java:481)
at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:551)
at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:265)
at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:236)
at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:215)
at org.apache.kafka.clients.consumer.internals.AbstractCoordinator.ensureCoordinatorReady(AbstractCoordinator.java:246)
at org.apache.kafka.clients.consumer.internals.ConsumerCoordinator.poll(ConsumerCoordinator.java:480)
at org.apache.kafka.clients.consumer.KafkaConsumer.updateAssignmentMetadataIfNeeded(KafkaConsumer.java:1262)
at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1231)
at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1211)
at kafka.tools.ConsoleConsumer$ConsumerWrapper.receive(ConsoleConsumer.scala:454)
at kafka.tools.ConsoleConsumer$.process(ConsoleConsumer.scala:101)
at kafka.tools.ConsoleConsumer$.run(ConsoleConsumer.scala:75)
at kafka.tools.ConsoleConsumer$.main(ConsoleConsumer.scala:52)
at kafka.tools.ConsoleConsumer.main(ConsoleConsumer.scala)
解决方案
KAFKA_HEAP_OPTS
是所有 Kafka CLI 脚本中的共享 shell 变量,因此您在链接帖子中引用的答案是正确的。
例如
KAFKA_HEAP_OPTS='-Xmx1G' kafka-console-consumer --bootstrap-server localhost:9092 --topic encounter.personEvent
我的 api 在 localhost:8080/swagger-ui.html 上运行。并调用 Kafka 生产者事件
然后,您希望 HTTP 客户端将 HTTP 请求 POST 到localhost:8080
. 反过来,正如您所说,这会生成一条 Kafka 消息,该消息被发送到localhost:9092
(默认情况下)。您需要从 Kafka消费,而不是 HTTP 服务器
推荐阅读
- scala - AkkaHTTP:从 HttpEntity 中获取内容
- c++ - Send bits of image to an HDL produced RAM block that is embedded in FPGA
- android - Webview can't load images from local directory
- python - 如何在python上求解三角方程
- vb.net - 如何在 vb.net 中识别给定语法的输入语音文本的不同组合
- list - 在c#中对绑定到类列表的dataGridView进行排序的优雅方法
- java - 映射 List 中的对象
- unix - 反列对的第三列的总和
- php - 将 XML 嵌入 SOAP / PHP 编码小于和大于符号
- javascript - 根据选择下拉值向表单添加 x 个输入