Kafka的内存配置主要涉及以下几个方面:
log.dirs 和 log.retention.hourslog.dirs: 指定Kafka日志存储的目录。log.retention.hours: 设置日志保留的时间(小时)。log.segment.byteslog.retention.check.interval.mslog.segment.mslog.flush.interval.messages 和 log.flush.interval.msnum.partitionsreplica.fetch.max.bytesmessage.max.bytesreplica.lag.time.max.msKafka Broker通常Java应用程序运行,因此需要配置JVM的内存参数。
-Xms 和 -Xmx-Xms8g -Xmx8g
-XX:MetaspaceSize 和 -XX:MaxMetaspaceSize-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m
-XX:+UseG1GC-XX:MaxGCPauseMillis-XX:MaxGCPauseMillis=200
socket.send.buffer.bytes 和 socket.receive.buffer.bytesnum.network.threadsnum.io.threads# Broker ID
broker.id=1
# Log directories
log.dirs=/tmp/kafka-logs
# Log retention policy
log.retention.hours=168
# Log segment size
log.segment.bytes=1073741824
# Log flush interval
log.flush.interval.messages=10000
log.flush.interval.ms=30000
# Number of partitions per topic
num.partitions=8
# Replica fetch max bytes
replica.fetch.max.bytes=104857600
# Message max bytes
message.max.bytes=1000000
# Replica lag time max ms
replica.lag.time.max.ms=10000
# JVM heap size
-Xms8g -Xmx8g
# Metaspace size
-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m
# Garbage collector
-XX:+UseG1GC
-XX:MaxGCPauseMillis=200
# Network threads
num.network.threads=3
# I/O threads
num.io.threads=8
通过合理配置Kafka的内存参数,可以显著提升其性能和稳定性。