【发布时间】:2018-10-15 16:12:16
【问题描述】:
我是卡夫卡的新手。来自链接:http://notes.stephenholiday.com/Kafka.pdf 提到:
"每次生产者向分区发布消息时,代理 只需将消息附加到最后一个段文件。为更好的 性能,我们只在一个 可配置的消息数量已发布或某个 时间已过。消息只暴露给消费者 刷完之后。”
现在我的问题是 这里的段文件是什么? 当我创建一个带有分区的主题时,每个分区都会有一个索引文件和一个 .log 文件。 这是(.log 文件)段文件吗?如果是这样,那么它已经在磁盘中,所以为什么它说“为了更好的性能,我们将段文件刷新到 磁盘”。如果它正在刷新到磁盘,那么它在磁盘中的哪个位置刷新? 似乎在它刷新到磁盘之前,它对消费者不可用。然后我们添加一些延迟来读取消息,但是为什么呢? 还希望帮助了解当消费者想要读取一些数据时,它是从磁盘(分区、段文件)读取还是有一些缓存机制,如果是这样,那么数据如何以及何时持久保存到缓存中? 我不确定所有问题是否有效,但它会帮助我了解是否有人可以解决它。
【问题讨论】:
-
我有相同或相似的基本问题——日志段到底是什么?我正在查看一些 Kafka 专家的文档和预发行书籍。我缺少一个明确的细分定义,以了解我正在阅读的文档中的其余讨论。
标签: apache-kafka