kafka 架构

https://cloud.tencent.com/developer/article/2307892 19张图

生产者架构

消息的磁盘存储文件结构

https://cloud.tencent.com/developer/article/2307892 19张图

produce消息分区策略

kafka–基础知识点–5–生产者分区策略

ISR、OSR、AR 是什么?

ISR:ISR,全称 in-sync replicas,是一组动态维护的同步副本集合,每个topic分区都有自己的ISR列表,ISR中的所有副本都与leader保持同步状态(也包括leader本身),只有ISR中的副本才有资格被选为新的leader,
OSR:Out-of-Sync Replicas
AR:Assigned Replicas 所有副本ISR是由leader维护,follower从leader同步数据有一些延迟(具体可以参见 图文了解 Kafka 的副本复制机制),超过相应的阈值会把 follower 剔除出 ISR, 存入OSR(Out-of-Sync Replicas )列表,新加入的follower也会先存放在OSR中。AR=ISR+OSR。

LEO、HW、LSO、LW等分别代表什么

LEO:是 LogEndOffset 的简称,代表当前日志文件中下一条
HW:水位或水印(watermark)一词,也可称为高水位(high watermark),通常被用在流式处理领域(比如Apache Flink、Apache Spark等),以表征元素或事件在基于时间层面上的进度。在Kafka中,水位的概念反而与时间无关,而是与位置信息相关。严格来说,它表示的就是位置信息,即位移(offset)。取 partition 对应的 ISR中 最小的 LEO 作为 HW,consumer 最多只能消费到 HW 所在的位置上一条信息。
LSO:是 LastStableOffset 的简称,对未完成的事务而言,LSO 的值等于事务中第一条消息的位置(firstUnstableOffset),对已完成的事务而言,它的值同 HW 相同
LW:Low Watermark 低水位, 代表 AR 集合中最小的 logStartOffset 值。

故障恢复leader、follower

ack 确认策略

数据传输的事务定义通常有以下三种级别:

  • 最多一次: 消息不会被重复发送,最多被传输一次,但也有可能一次不传输
  • 最少一次: 消息不会被漏发送,最少被传输一次,但也有可能被重复传输.
  • 精确的一次(Exactly once): 不会漏传输也不会重复传输,每个消息都传输被

at least once
at more once
exactly once

消费者消费策略

https://zhuanlan.zhihu.com/p/716426534

leader epoch

follower 同步leader消息过程 及 leo、hw的变化过程

exactly once = 幂等性+at least once

https://www.cnblogs.com/jiangzishun/p/17679666.html 幂等性

kafka事务

producer 事务 https://www.cnblogs.com/xijiu/p/16917741.html

kafka常用命令

kafka使用场景

kafka数据保存磁盘 为什么这么快

零拷贝

在分布式的情况下如何保证顺序消费

kafka消息丢失的场景 及 如何避免消息丢失

kafka为什么不支持读写分离

方便实现单调读(Monotonic Reads)
什么是单调读呢?就是对于一个消费者用户而言,在多次消费消息时,它不会看到某条消息一会儿存在一会儿不存在。

如果允许追随者副本提供读服务,那么假设当前有 2 个追随者副本 F1 和 F2,它们异步地拉取领导者副本数据。倘若 F1 拉取了 Leader 的最新消息而 F2 还未及时拉取,那么,此时如果有一个消费者先从 F1 读取消息之后又从 F2 拉取消息,它可能会看到这样的现象:第一次消费时看到的最新消息在第二次消费时不见了,这就不是单调读一致性。但是,如果所有的读请求都是由 Leader 来处理,那么 Kafka 就很容易实现单调读一致性。

消息堆积

kafka-consumer-groups

Kafka创建Topic时如何将分区放置到不同的Broker中

  • 副本因子不能大于 Broker 的个数;第一个分区(编号为0)的第一个副本放置位置是随机从 brokerList 选择的;
  • 其他分区的第一个副本放置位置相对于第0个分区依次往后移。也就是如果我们有5个 Broker,5个分区,假设第一个分区放在第四个 Broker 上,那么第二个分区将会放在第五个 Broker 上;第三个分区将会放在第一个 Broker 上;第四个分区将会放在第二个 Broker 上,依次类推;
  • 剩余的副本相对于第一个副本放置位置其实是由 nextReplicaShift 决定的,而这个数也是随机产生的;

kafka监控工具

遍历AR,如果当前机器在ISR中就它为Leader

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

替换ngnix ssl 证书

1. 阿里云数字证书管理服务 -》SSL 证书管理 -》个人测试证书(原免费证书)-》查找相应域名的证书/新建证书,申请 -》下载证书,如果是ngnix服务器,就下载pem/key格式2.远程连接服务器a.nginx -t :查看ngnix 配置文件在哪…

rabbitmq ACK

在消息队列(如 RabbitMQ)中,**ACK(Acknowledgement)是消息确认机制**,用于确保消息被消费者成功处理。其核心作用是解决以下问题:mermaid复制代码导出svg📌 ACK 的两种模式1. 自动确…

性能远超Spring Cloud Gateway!Apache ShenYu如何重新定义API网关!

Apache ShenYu Apache ShenYu是一个异步的,高性能的,跨语言的,响应式的 API 网关。 特点 • 代理:支持Apache Dubbo,Spring Cloud,gRPC,Motan,SOFA,TARS,We…

质变科技亮相可信数据库发展大会,参编《数据库发展研究报告2025》

数据库作为支撑数据存储与计算的关键载体,在数据要素时代的重要性愈发凸显。过去一年,全球数据库新技术、新业态、新模式不断涌现;我国数据库应用创新于重点行业快速推进。随着人工智能技术深刻变革,数据库与AI融合趋势愈发明显。…

LVS(Linux Virtual Server)详细笔记(理论篇)

一.详解1. LVS概述LVS(Linux Virtual Server)是由章文嵩博士发起的开源负载均衡项目,通过在Linux内核中实现高性能四层交换能力,将多台物理服务器组织成单一虚拟服务。它能够处理百万级并发连接,同时保持线性扩展能力&…

Oracle Data Pump 导入冲突解决

问题场景 使用 impdp 导入数据时遇到"对象已存在"错误,导致导入失败。 核心解决方案 1. TABLE_EXISTS_ACTION 参数 impdp username/passworddatabase \ directoryDATA_PUMP_DIR \ dumpfileyour_dump_file.dmp \ TABLE_EXISTS_ACTIONREPLACE作用&#xff1…

汽车免拆诊断案例 | 2015款进口起亚索兰托L车漏电

故障现象 一辆2015款进口起亚索兰托L车,搭载D4HB发动机,累计行驶里程约为15万km。车主反映,该车停放2天左右就因蓄电池亏电而无法起动,更换过蓄电池,但故障依旧,于是将车开至我厂检修。故障诊断 接车后用…

mysql复制延迟如何处理

一、复制延迟的原因主库增删改并发大大表在做DDL从库备份导致延迟大事务从库机器配置差二、怎样判断延迟使用 SHOW SLAVE STATUS 命令Seconds_Behind_Master:表示从库落后主库的秒数(若为 NULL,可能复制线程已停止)对比位点字段名…

HertzBeat 监控 SpringBoot 使用案例

HertzBeat 监控 SpringBoot 使用案例 在云原生时代,Spring Boot应用的监控与可视化已然成为运维体系的核心环节,实时监控应用性能是保障系统稳定性的关键。 这篇文章将结合 HertzBeat 实现从指标采集、可视化到告警的一体化解决方案,并展示…

突破性量子芯片问世:电子与光子首次集成,开启量子技术规模化应用新篇章

文丨浪味仙 排版丨浪味仙行业动向:3000字丨8分钟阅读内容提要在量子技术迈向规模化应用的征程中,研究人员迎来了重要突破。近日,波士顿大学、加州大学伯克利分校以及西北大学的科学家在《Nature Electronics》上发表论文,报告实现…

day30——零基础学嵌入式之线程2.0

一、进程和线程的对比线程进程定义轻量级的进程。是进程中的执行单元,作为CPU调度的基本单位进程时程序的一次执行过程,作为CPU的资源分配的基本单位优势创建以及切换速度块-----效率高线程(线程共享了进程的资源)间共享资源方便创…

洛谷 P1395 会议

【题目链接】 洛谷 P1395 会议 【题目考点】 1. 树形动规:树的重心 本题为求树的重心模板题 【解题思路】 树的重心:相比于树中其它结点,其所有的子树中结点数最多的子树的结点数最少,该结点就是这棵树的重心。 另一种定义&…

Microsoft 365 Adoption Score功能深度解析:驱动企业数字化转型的利器

在数字化转型的浪潮中,Microsoft 365(原Office 365)凭借其强大的生产力工具和云服务生态,已成为全球企业和组织提升效率、协作和创新的核心平台。然而,仅仅部署Microsoft 365并不足以充分发挥其潜力,关键在于如何推动员工高效采用这些工具,并将其融入日常工作流程。为此…

尺寸标注识别5 实例分割 roboflow | result.boxes获取边界框 | yolov8n-seg架构 torchinfo | 对直线关系不敏感

https://gitee.com/njsgcs/yolo-local 单标注一个尺寸线 100轮就百分百了 Sign in to Roboflow 有混起来的问题 roboflow训练用的cocon-seg模型我网上找不到 上面这种比较麻烦 text的中心要在dt范围内 屏幕点以下等同于按下save(enter) 取最长线段作…

敏捷开发卡在需求分析?飞算 JavaAI 加速需求确认与功能迭代

在敏捷开发中,需求分析常成为团队推进的 “卡点”—— 模糊的需求描述、反复的需求变更、拆解落地难等问题,往往导致迭代周期延长。而飞算 JavaAI 作为专为 Java 开发设计的工具,正通过 “需求理解 - 接口设计 - 代码生成” 的全流程智能化&a…

QT跨平台应用程序开发框架(10)—— Qt窗口

目录 一,关于窗口 二,菜单栏 2.1 菜单介绍 2.2 添加菜单 2.3 添加快捷键 2.4 添加其子菜单 2.5 添加分割线和图标 三,工具栏 3.1 添加和使用工具栏 3.2 设置位置属性 四,状态栏 五,浮动窗口 六,对话框 6.1 …

git从本地仓库添加到远程仓库

先创建,然后配置 Git 的全局用户名和邮箱git config --global user.name "不吃糖o" git config --global user.email "1523944556qq.com" git config --global -l 查看设置的用户名和邮箱如何生成SSH公钥?ssh-keygen 生成sshkeyls ~…

锁步核,为什么叫锁步核?

“锁步核”(Lockstep Cores)这一名称源于其工作原理与军事队列行进中的“锁步”(Lockstep)动作的类比。以下是详细的说明整理:1. 军事起源:什么是“锁步”? 在传统军事训练中,“锁步…

python学智能算法(二十二)|SVM-点与超平面的距离

引言 前序学习进程中,了解了向量、向量点积运算、超平面、感知机等知识点。 SVM算法最核心的目标是通过规划租号的分割超平面,来使得超平面附近的点到超平面的距离和达到最大值。 那点和超平面的距离如何计算,就是今天学习的重点。 点与超平…

参会邀请!2025世界人工智能大会合合信息技术交流日报名启动!

2025世界人工智能大会即将开幕,合合信息邀请您一起参与KOL深度技术交流活动。本次活动不仅可以带您逛展2025世界人工智能大会,在合合信息展台体验AI黑科技,还可以与行业顶尖技术专家面对面交流,共同探讨当下热门AI安全话题。 详细…