1.kafka 存储再文件系统上 顺序写磁盘 效率比随机写内存还要高,这是kafka高吞吐率的一个重要的保证。 缓存页 pageCache 数据传输的零拷贝 读写数据的批量batch处理以及压缩传输 零拷贝: 消除cpu拷贝,减少上下文切换。 Kafka 在这里采用的方案是通过 NIO 的 transferTo/transferFrom 调用操作系统的 sendfile 实现零拷贝。 总共发生 2 次内核数据拷贝、2 次上 下文切换和一次系统调用,消除了 CPU 数据拷贝。 2. kafka 中的 底层存储设计 partitio 均分为多个 segment File,由 index file 和 data file 组成 .index索引文件 和 .log数据文件 Segment 是 Kafka 文件存储的最小单位。存储的message消息 seament由.index索引文件和.log数据文件组成。数值最大为 64 位 long 大小,19 位数字字符长度,长度不够数字用0填充。 如 0000 0000 0000 0036 8769.index 和 0000 0000 0000 0036 8769.log。 partition 全局第一个segment是从0开始,后续的每一个segment文件为上一个文件的最后一条消息的offset值。 .index文件中元数据<1,5> 是数据文件中的第1个 message,在分区partition表示第 .index文件名称+1个消息 该消息的物理偏移量为5。
标签:index,0000,log,文件,kafka,高性能,设计,拷贝 From: https://www.cnblogs.com/dhdnm/p/16606473.html