6.kafka--日志存储

news/2024/11/22 5:56:07/

文章目录

  • 消息日志存储

消息日志存储

server.properties中配置了存储log的目录

log.dirs=/opt/server/kafka/kafka_2.12-3.0.0/kafka-logs-1

以first主题为例,该主题有4个分区,3个副本

[root@node2 kafka-logs-1]# ../bin/kafka-topics.sh --bootstrap-server node1:9092 --topic first --describe
Topic: first    TopicId: IcU6kbglSSWOkruuSmgryg PartitionCount: 4       ReplicationFactor: 3    Configs: segment.bytes=1073741824Topic: first    Partition: 0    Leader: 2       Replicas: 2,0,1 Isr: 2,1,0Topic: first    Partition: 1    Leader: 0       Replicas: 0,1,2 Isr: 2,1,0Topic: first    Partition: 2    Leader: 1       Replicas: 1,2,0 Isr: 2,1,0Topic: first    Partition: 3    Leader: 2       Replicas: 2,1,0 Isr: 2,1,0

那么first的数据再kafka-logs-1中显示为:

drwxr-xr-x. 2 root root 204 1月 30 11:05 first-0
drwxr-xr-x. 2 root root 204 1月 30 11:34 first-1
drwxr-xr-x. 2 root root 204 1月 30 11:43 first-2
drwxr-xr-x. 2 root root 167 1月 30 11:05 first-3

每个分区中都有.log .index .timeindex文件

[root@node2 kafka-logs-1]# cd first-0
[root@node2 first-0]# ll
总用量 20
-rw-r–r–. 1 root root 10485760 1月 30 11:34 00000000000000000000.index
-rw-r–r–. 1 root root 71 1月 30 11:03 00000000000000000000.log
-rw-r–r–. 1 root root 10485756 1月 30 11:34 00000000000000000000.timeindex
-rw-r–r–. 1 root root 10 1月 30 11:04 00000000000000000000.snapshot
-rw-r–r–. 1 root root 10 1月 30 11:05 leader-epoch-checkpoint
-rw-r–r–. 1 root root 43 1月 16 18:24 partition.metadata

日志分段存储
Kafka 一个分区的消息数据对应存储在一个文件夹下,以topic名称+分区号命名,消息在分区内是分段(segment)存储,每个段的消息都存储在不一样的log文件里,这种特性方便old segment file快速被删除,kafka规定了一个段位的 log 文件最大为 1G,做这个限制目的是为了方便把 log 文件加载到内存去操作:

00000000000000000000.index
部分消息的offset索引文件,kafka每次往分区发4K(可配置)消息就会记录一条当前消息的offset到index文件(稀疏索引),如果要定位消息的offset会先在这个文件里快速定位,再去log文件里找具体消息。

00000000000000000000.timeindex
消息的发送时间索引文件,kafka每次往分区发4K(可配置)消息就会记录一条当前消息的发送时间戳与对应的offset到timeindex文件(稀疏索引),如果需要按照时间来定位消息的offset,会先在这个文件里查找。

消息存储文件,主要存offset和消息体
00000000000000000000.log


http://www.ppmy.cn/news/20845.html

相关文章

通用`Query`解决方案

文章目录通用Query解决方案简介什么是QueryQuery类别Query基本使用SQL Query基本使用自定义Query基本使用现状方案通过Json数据或方法动态生成Query 通过Select Sql语句动态生成Query通过Query生成动态Query支持传统的Query并通过参数形式生成Query列定义通用Query,…

Unity使用本地UPM包的实现方式

实现1:项目根路径实现优点:1.不必有额外操作2.本地包随项目版控,不会丢失包产生错误3.按需升级包缺点:1.包的修改随项目版控,增加日志冗余2.不利于包全局管理建议使用场景多人合作,开发底子较弱的团队。实现…

Segmenter论文解读

Segmenter: Transformer for Semantic Segmentation 论文:[2105.05633] Segmenter: Transformer for Semantic Segmentation (arxiv.org) 代码:[rstrudel/segmenter: ICCV2021] Official PyTorch implementation of Segmenter: Transformer for Semanti…

Flutter基础语法(二)字典Map

Flutter基础 第二章 Flutter字典Map的使用 文章目录Flutter基础前言一、字典是什么?二、字典的定义1.直接赋值2.先声明后添加3.of创建方法4.fromEntries创建方法5.identity创建方法6.unmodifiable创建方法7.fromIterables创建方法三、字典的常用属性1.字典长度2.是…

【自然语言处理】【大模型】PaLM:基于Pathways的大语言模型

PaLM:基于Pathways的大语言模型《PaLM: Scaling Language Modeling with Pathways》论文地址:https://arxiv.org/pdf/2204.02311.pdf 相关博客 【自然语言处理】【大模型】PaLM:基于Pathways的大语言模型 【自然语言处理】【chatGPT系列】大语…

不平衡数据集的建模的技巧和策略

不平衡数据集是指一个类中的示例数量与另一类中的示例数量显著不同的情况。 例如在一个二元分类问题中,一个类只占总样本的一小部分,这被称为不平衡数据集。类不平衡会在构建机器学习模型时导致很多问题。 不平衡数据集的主要问题之一是模型可能会偏向多…

Mac 打开JD-GUI报错:ERROR launching ‘JD-GUI‘

目录一、JD-GUI下载二、JD-GUI报错信息三、解决方案1、查找JD-GUI包内容2、修改universalJavaApplicationStub.sh文件一、JD-GUI下载 JD-GUI下载地址:https://github.com/java-decompiler/jd-gui/releases 二、JD-GUI报错信息 Mac系统版本:11.3 JD-GUI…

【数据结构初阶】第三篇——单链表

链表的概念及其结构 初始化链表 打印单链表 增加结点 头插 尾插 在给定位置之前插入 在给定位置之后插入 删除结点 头删 尾删 删除给定位置的结点 查找数据 修改数据 链表的概念及其结构 基本概念 链表是一种物理存储结构上非连续,非顺序的存储结构&a…