Java 堆空间 - 内存不足错误 - 带有 SASL_SSL 的 Kafka Broker

标签 java ssl apache-kafka out-of-memory sasl

当我在带有 PLAIN_TEXT 端口 9092 的 Kafka 代理中使用下面的“/usr/bin/kafka-delete-records”命令时,该命令工作正常,但是当我使用 SASL_SSL 端口 9094 时,该命令抛出以下错误.有人知道通过 SASL_SSL 使用 Kafka 代理端口 9094 的解决方案吗?

$ssh **** ****@<IP address> /usr/bin/kafka-delete-records --bootstrap-server localhost:9094 --offset-json-file /kafka/records.json`

[2019-10-14 04:15:49,891] ERROR Uncaught exception in thread 'kafka-admin-client-thread | adminclient-1': (org.apache.kafka.common.utils.KafkaThread)

java.lang.OutOfMemoryError: Java heap space
    at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:57)
    at java.nio.ByteBuffer.allocate(ByteBuffer.java:335)
    at org.apache.kafka.common.memory.MemoryPool$1.tryAllocate(MemoryPool.java:30)
    at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:112)
    at org.apache.kafka.common.network.KafkaChannel.receive(KafkaChannel.java:390)
    at org.apache.kafka.common.network.KafkaChannel.read(KafkaChannel.java:351)
    at org.apache.kafka.common.network.Selector.attemptRead(Selector.java:609)
    at org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:541)
    at org.apache.kafka.common.network.Selector.poll(Selector.java:467)
    at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:535)
    at org.apache.kafka.clients.admin.KafkaAdminClient$AdminClientRunnable.run(KafkaAdminClient.java:1125)
    at java.lang.Thread.run(Thread.java:748)
Executing records delete operation
Records delete operation completed:

注意:-Xmx 为 8GB,服务器的总内存为 16GB

请检查下面的当前堆值:

$ ps -ef | grep kafka
cp-kafka 11419     1  3 10:07 ?        00:05:27 java -Xms8g -Xmx8g  -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35  ........ io.confluent.support.metrics.SupportedKafka /etc/kafka/server.properties

最佳答案

很可能,OOM 异常只是一个转移注意力的问题,请参阅 JIRA KAFKA-4493 .真正的问题是 SASL-SSL 连接,您的客户端无法正确建立该连接。在客户端启用 SSL 调试并从那里继续:

$ export KAFKA_OPTS="-Djavax.net.debug=handshake"
$ /usr/bin/kafka-delete-records ...

关于Java 堆空间 - 内存不足错误 - 带有 SASL_SSL 的 Kafka Broker,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58375592/

相关文章:

ios - 签署 apple-app-site-association

ssl - 如何使用SSL HTTPS在Amazon EC2 AWS中保护Nginx前端和Puma后端

apache-kafka - Kafka 的 session.timeout.ms 和 max.poll.interval.ms 之间的差异 >= 0.10.1

python - 无法使用kafka-python从另一个容器向Kafka容器发出请求

JAVA:多个类中的静态字段+公共(public)接口(interface)

Sonar 中的 Javamelody 报告

java - 进行网络服务调用时出现异常

java - 使用 JavaScript 更改获取数据的 HTML 标签?

ssl - 自定义域 Heroku 应用无法提供安全连接 : ERR_SSL_PROTOCOL_ERROR

ssl - 带 SSL 的 Kubernetes 上的 Kafka