apache-kafka - 如何减少分区占用的磁盘空间?
问题描述
在我的特定用例中,我们每天将摄取 1000GB 的数据。如果我在本地压缩文件,那么它大约有 100GB。
我编写了一个示例应用程序来流式传输 100MB 文件(压缩后转换为 10MB)。单个生产者,单个主题,单个分区。
我使用了事务并启用了压缩 (gzip)。我运行命令找出分区的总大小,它大约是 85MB。作为Kafka,可能会添加一些数据;为了保证完全一次的语义。我创建了大量消息并将它们提交到事务中。每条消息都被压缩。
我还查看了 Kafka 内部存储的内容:
- 0000.index
- 0000.log(这消耗了最多的磁盘空间)
- 0000.timeindex
- 0000.snapshot
- 领导者时代检查点
我有两个问题:
为什么 Kafka 主题即使在压缩后也使用这么多磁盘空间?
我可以做些什么来减少我的分区的磁盘空间?仅供参考,在我的情况下,日志压缩不会有效,因为每条消息都将有一个唯一的密钥。
解决方案
推荐阅读
- http - Prolog:process_create 在 http_handler 中不起作用
- php - 如何使用带有 PHP 的单选按钮将某些信息上传到我的数据库?
- python - 接受生日列并返回星座的 Python 函数
- javascript - 在 Rails 应用程序中使用外部脚本时出现 Javascript 空错误
- swift - 将分段样式选择器添加到 SwiftUI 的 NavigationView
- javascript - 如果位置在视口边缘,React-map-gl Popups on hover 也会弹出
- git - git + gerrit 分支内部
- git - Git - 恢复旧合并中的特定文件,从历史记录中删除
- python - 使用 Bahdanau Attention 的上下文向量形状
- python - python 从列中搜索表/.csv,返回结果行