为什么我的kafka-tmp文件夹的大小与磁盘大小几乎相同



我用以下形式开发生产卡夫卡环境:3个ZK服务器、3个卡夫卡代理和两个卡夫卡连接。我把tmp文件和kafka主文件夹放在一起。我在远程ubuntu环境中运行它,但不在docker中运行。

当我操作我的kafka操作时,我遇到了一个错误,通知我的磁盘消耗过多。我检查了我的kafka tmp文件夹,它的大小几乎是我磁盘大小的2/3,这关闭了我的kafka集群。

我检查了每个kafka log_folder,发现了这个:

  1. 1号工人的25connect_offset,每个21MB
  2. 来自2号工人的25个connect_offset2,每个21MB
  3. 来自1号工人的25个connect_status,每个21MB
  4. 每个21MB的2号工人提供25个connect_status2
  5. 两个工人各50个__consumer_offset,每个21MB
  6. 每个主题的主题偏移量为21Mb,我有2个主题,所以我有6个主题偏移量

问题是__consumer_offset的数量比其他偏移消耗了更多的磁盘,而我的kafka_config无法处理它

broker.id=101
port=
num.partitions=3
offsets.topic.replication.factor=3
log.cleaner.enable=true
log.cleanup.policy=delete
log.retention.bytes=1073741824
log.segment.bytes=1073741824
log.retention.check.interval.ms=60000
message.max.bytes=1073741824
zookeeper.connection.timeout.ms=7200000
session.time.out.ms=30000
delete.topic.enable=true

对于每个主题,这是配置:

kafka-topics.sh -create --zookeeper ... --replication-factor 3 --partitions 3 --topic ... --config cleanup.policy=delete --config retention.ms=86400000 --config min.insync.replicas=2 --config compression.type=gzip

像这样的连接配置(连接配置共享相同的配置,除了端口、偏移量和状态配置。(:


key.converter.schemas.enable=true
value.converter.schemas.enable=true
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
offset.storage.topic=connect-offsets
offset.storage.replication.factor=3
config.storage.topic=connect-configs
config.storage.replication.factor=3
status.storage.topic=connect-status
status.storage.replication.factor=3
offset.flush.timeout.ms=300000
connector.client.config.override.policy=All
producer.max.request.size=1073741824
producer.ack=all
producer.enable.idempotence=true
consumer.max.partition.fetch.bytes=1073741824
consumer.auto.offset.reset=latest
consumer.enable.auto.commit=true
consumer.max.poll.interval.ms=5000000

很明显,根据一些文档,Kafka不需要大的磁盘空间(记录的最大tmp是36GB(。

"@21MB"是什么意思?您的log.segment.bytes设置为1GB。。。


首先,永远不要将/tmp用于持久存储。并且不要将/home用于服务器数据。对于服务器数据以及/var+/var/logs,始终使用单独的分区/磁盘。

其次,您有2个Connect集群。使用相同的3个主题和相同的group.id,那么您就有了1个Distribtued Cluster,您就不用再拥有3个额外的主题了。

最后,

__consumer_offset的数量比其他偏移消耗更多的磁盘

嗯,是的。所有消费者群体都将他们的补偿存储在那里。这将是迄今为止最大的内部主题,取决于您的offsets.retention.minutes

Kafka不需要大的磁盘空间

当您开始时,它不会

我见过具有数百TB存储的集群

如果你观看大公司的卡夫卡峰会演讲,他们每秒发送GB的活动(参考Netflix、Spotify、优步等(


卡夫卡在生产中

  1. Apache
  2. 汇流

相关内容

  • 没有找到相关文章

最新更新