美文网首页kafka专题
Kafka专题:4.kafka存储层

Kafka专题:4.kafka存储层

作者: 北交吴志炜 | 来源:发表于2019-02-08 12:45 被阅读0次

kafka的存储层主要包含 分区,副本,日志,日志分段这些概念,以问答的形式来描述

1.为什么kafka的每一个主题会有多个分区?
如果一个分区,会造成日志文件集中在一个节点上,需要解决文件切分的问题,多分区可以从源头上保证日志文件分散在各分区节点上;而且,多分区情况下,生产者可以将一批消息写入不同分区节点,不分区的话,写操作只能串行。读操作同理,总结就是可以提高读写性能。

2.为什么分区需要副本?
可用性的保证,主副本挂掉,备份副本可以顶上

3.消息写入最终是写到哪里?
写入到日志文件, 为防止随着追加,日志文件不断增大,采用日志分段的形式。每一个日志分段包含一个索引文件和一个数据文件
正常情况下,kafka的读写都是顺序读写,性能很高。如果需要读取指定offset的消息。那么索引文件就可以起到作用了。

4.索引文件的特点?
1)稀疏索引,不会为每一条消息都建立索引
2)索引存储的是相对偏移量和物理位置
3)偏移量是有序的,可以使用2分查找快速定位
4)索引可以通过内存映射的方式放入内存,加快查询。

5.消息什么时候写入到日志文件
日志管理器会定时调度flushDirtyLogs()方法将page cache中的消息真正刷写到磁盘日志文件上。刷写日志有两种策略:时间策略与大小策略。

6.kafka的日志清除策略
1)删除策略:直接删除日志分段,确保磁盘空间不会一直膨胀
2)压缩策略:只删除相同的键但是偏移量比较旧的消息,保留最新的消息

相关文章

  • Kafka专题:4.kafka存储层

    kafka的存储层主要包含 分区,副本,日志,日志分段这些概念,以问答的形式来描述 1.为什么kafka的每一个主...

  • docker kafka安装

    1.拉去最新镜像 2.启动zookeeper 3.启动kafka 4.kafka 控制台安装

  • Kafka零拷贝

    Kafka除了具备消息队列MQ的特性和使用场景外,它还有一个重要用途,就是做存储层。 用kafka做存储层,为什么...

  • Kafka零拷贝

    Kafka除了具备消息队列MQ的特性和使用场景外,它还有一个重要用途,就是做存储层。 用kafka做存储层,为什么...

  • Kafka服务端原理学习

    目录 网络层服务端顺序性保证 API层 日志存储层 副本机制 实际使用 性能优化 kafka学习 网络层 服务端顺...

  • Kafka源码分析-Content Table

    Kafka源码分析-网络层-1 Kafka源码分析-网络层-2 Kafka源码分析-网络层-3 Kafka源码分析...

  • Kafka 日志存储

    Kafka 中的底层存储设计 Segment 是kafka文件存储的最小单位 日志存放目录 kafka_2.10...

  • Kafka 日志存储、清理规则、消息大小估算

    kafka的日志: kafka消息存储在kafka集群中(分parition存储,每个partition对应一个目...

  • Kafka 基本原理

    目录 简介Kafka架构Kafka存储策略Kafka删除策略Kafka brokerKafka DesignThe...

  • kafka架构师2-图解kafka源码1发送者流程

    架构 Client生产发送流程Server:kafka 网络架构kafka 数据存储kafka 副本同步kafka...

网友评论

    本文标题:Kafka专题:4.kafka存储层

    本文链接:https://www.haomeiwen.com/subject/kesgsqtx.html