kafka 四 Kafka读写流程、LEO log end offset、物理存储 稠密索引 稀疏索引 、Kafka物理存储、深入了解读数据流程、删除消息

news2025/1/11 14:58:21

目录

Kafka读写流程

LEO log end offset

物理存储 稠密索引 稀疏索引

Kafka物理存储

深入了解读数据流程

删除消息


Kafka读写流程

写流程:

  1. 通过zookeeper 找leader
  2. 分配开始读写
  3. Isr中的副本同步数据,并返回给leader ack
  4. 返回给 分片ack

读流程:

  1. 通过zookeeper 找leader
  2. 通过zookeeper 找到 消费者对应的offset
  3. 然后从offset顺序拉去
  4. 提交offset 自动提交 手动提交

LEO log end offset

文件默认最大1个G

             

物理存储 稠密索引 稀疏索引

- 稀疏索引需要的空间小,占用内存也小,但是查询次数更多,速度较慢。

- 稠密索引占用空间大,但是查询次数更少,速度更快。  

  1. Offset 找对应的数据
  2. 全局offset 找到对应的分片,分片对应offset 对应多个文件每个文件对应单独的offset
  3. 对应稀疏索引 俩层索引寻址

分片油多个文件组成,每个文件设置大小默认1G

  1. Segment 段包含 index log  timeindex snapshot

Kafka物理存储

  1. Topic
  2. Parition
  3. Segment
    1. Log数据文件
    2. Index索引文件
    3. Timeindex 稀疏索引

深入了解读数据流程

  1. 消费者offset 针对一个 分片找到 全局offset
  2. 根据这个全局offset找到对应的segment组的局部offset
  3. 根据全局的offset可以从index稀疏索引找到对应数据的位置
  4. 开始顺序读取

删除消息

Kafka定期清理数据,一次删除对应的 segment段的数据

Kafka日志管理器 会根据配置删除

ok

持续更新

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/627588.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023高考语文,用ChatGPT挑战全国卷作文,已达到双一流高校学生水平?

前言 2023年高考语文结束啦,今天我们用ChatGPT来挑战高考作文,一起来看看它的表现如何?ChatGPT突然爆火网络,它真的会取代人类的工作吗? 什么是ChatGPT? ChatGPT是由OpenAI开发的,OpenAI是一家…

BBA EDI 项目数据库方案开源介绍

近期为了帮助广大用户更好地使用 EDI 系统,我们根据以往的项目实施经验,将成熟的 EDI 项目进行开源。用户安装好知行之桥EDI系统之后,只需要下载我们整理好的示例代码,并放置在知行之桥指定的工作区中,即可开始使用。 …

排序算法的复杂度及稳定性详解(内含记忆小窍门)

排序算法的复杂度及稳定性 一、排序算法分类二、概念2.1 时间复杂度2.2 空间复杂度2.3 稳定性 三、表格比较注意 四、部分排序分析4.1 直接插入排序图示代码 4.2 冒泡排序图示代码 4.3 快速排序图示代码 五、结构化记忆(小窍门)5.1 结构化5.2 我的结构化…

2023 如何备考系统架构师?

高级系统架构设计师难度还是有的,所以一般千万不要裸考!!要时间充足,至少要接触过,反正没有基础的尽量还是不要去裸考了! 一、系统架构设计师考试题型 考试科目分为综合题(选择题)&a…

Stable Diffusion最全保姆级安装教程(建议收藏)

Midjourney 因细致的画图风格备受大家的欢迎,但由于其网络环境以及会员费,导致入门门槛过高,拦住了很多对AIGC感兴趣的小伙伴。 今天阿良就教大家,不需要魔法,也不用交会员费,尽情玩转AI出图的保姆级安装教…

力扣算法系统刷题详细题解记录二(字符串、双指针法、栈与队列)

力扣算法系统刷题题解记录二(字符串、双指针法、栈与队列) 前言 参考顺序和资料:《代码随想录》 二刷要认真做笔记啦,加油! 笔记模板: #### 解题思路#### 示意图#### 代码四、字符串 344.字符串反转 编…

求最小生成树(Kruskal算法和Prim算法)

目录 一、前言 二、相关概念 1、最小生成树 2、Prim算法(对结点进行操作) 3、kruskal 算法(对边进行操作) 三、例题 1、修建公路(lanqiaoOJ题号1124) 1、Prim算法题解 2、Kruskal算法 一、前言 很…

PyToch 深度学习 || 卷积神经网络分类

卷积神经网络分类 import torch import torch.nn as nn import torchvision import numpy as np from torch.autograd import Variable import matplotlib.pyplot as plt import torch.nn.functional as F import torch.utils.data as Data from torchvision import datasets,…

【业务功能篇20】Springboot java逻辑实现动态行转列需求

在此前,我也写过一个行转列的文章,是用存储过程sql处理的一个动态的逻辑 Mysql 存储过程\Mybatis框架call调用 实现动态行转列 那么后面我们同样又接收了业务的一个新需求,针对的是不同的业务数据,做的同样的一个展示数据报表&…

【C++11】 initializer_list | 右值引用 | 移动构造 | 完美转发

文章目录 1. 统一的列表初始化{ } 初始化initializer_list 2. 引用左值引用右值引用左值引用与右值引用的相互转换右值引用的真正使用场景移动构造 C98与C11传值返回问题注意事项总结 3. 完美转发 1. 统一的列表初始化 { } 初始化 C11 扩大了括号括起的列表(初始化列表)的使用…

使用PHP导出Excel时处理复杂表头的万能方法

使用PHP导出Excel时,如果是一级表头处理起来很简单,但如果碰到复杂一点的表头,比如二级、三级,甚至更多级别的表头要怎么办呢? 就像下面这个表头,有三层,并且每层都不太规则—— 难道我们每次处…

动态绑定v-model,并解决输入框无法输入和无法双向绑定问题

问题:在界面中想要动态获取数据库中返回的数据,作为下拉的值,每个下拉值中又包含不同的属性信息,给输入框动态绑定v-model,但是绑定成功后输入框内无法输入内容,且没有双向绑定 解决思路:1.双向…

SIM:基于搜索的用户终身行为序列建模

SIM:基于搜索的用户终身行为序列建模 论文:《Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction》 下载地址:https://arxiv.org/abs/2006.05639 1、用户行为序列建模回顾 1…

在 AWS 上使用 OpenText 实现业务关键型应用程序的现代化

通过在云中进行信息管理建立持久的竞争优势 创新在云中发生的速度比以往任何时候都快。 企业面临着数字经济快速转型的挑战,充分释放业务信息的能力对于建立持久的竞争优势至关重要。为分散的员工扩大安全可靠的协作范围将是生产力和创新的关键驱动力。 如今大多…

Web UI自动化测试之元素定位

目前,在自动化测试的实际应用中,接口自动化测试被广泛使用,但UI自动化测试也并不会被替代。让我们看看二者的对比: 接口自动化测试是跳过前端界面直接对服务端的测试,执行效率和覆盖率更高,维护成本更低&am…

【EtherCAT】一、入门基础

什么是EtherCAT? 介绍简介特点和优势EtherCAT系统组成主站从站 硬件EtherCAT主站芯片EtherCAT从站芯片 EtherCAT应用层协议 工具软件 介绍 简介 EtherCAT(Ethernet Control Automation Technology)是一种高性能实时以太网通信协议&#xff…

Ubuntu20.04设置开机自启动脚本

1.建立开机启动服务 sudo vim /lib/systemd/system/rc-local.service 在末尾添加 [Install] WantedBymulti-user.target Aliasrc-local.service2.创建 /etc/rc.local sudo touch /etc/rc.local && sudo chmod 755 /etc/rc.local #!/bin/bash cd /home/docker-data/ss…

前端框架笔记

Vue.js的安装 安装Vue.js有两种方法&#xff1a; &#xff08;1&#xff09;类似于Bootstrap或jQuery&#xff0c;直接通过HTML文件中的标签引用。为了方便开发者使用&#xff0c;Vue.js提供了相关的CDN&#xff0c;通过如下代码可以引用最新版本的Vue.js&#xff1a; <sc…

小黑回到学校,跟小老黑中老黑阿黄一起度过最后在学校的日子的leetcode之旅:3. 无重复字符的最长子串

双指针动态滑动窗口 class Solution:def lengthOfLongestSubstring(self, s: str) -> int:# 字符串长度n len(s)# 双指针left 0right 0# 存储集合set_ set()# 当前子串长度cur_len 0# 结果result 0# 分别遍历每一个右指针while right < n:# 该字符是重复的&#x…

向量相似搜索绕不开的局部敏感哈希

在搜索推荐中&#xff0c;通常使用相似Embedding进行推荐&#xff0c;此时就会有一个问题&#xff1a;如何快速找到与一个Embedding相近的其他Embedding。 如果两个Embedding在同一个向量空间中&#xff0c;我们就可以通过很多种方式&#xff08;内积、余弦、欧氏距离等&#…