KAFKA 服务端日志LEO和HW说明

2024-01-21 13:59

本文主要是介绍KAFKA 服务端日志LEO和HW说明,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

KAFKA 服务端一个日志文件包含两个特性:日志末端位移(log-end-offset)和高水印(high-watermask),无论是LEADER还是follow副本均含有这两个特性:

LEO:该副本底层log文件下一条要写入的消息的位移,例如LEO=10则当前文件已经写了了10条消息,位移是[0,10)。

HW:所有分区已提交的的位移,HW之外consumer无法消费,一般HW<=LEO。

一 LEO更新机制

1.1 follow的LEO更新机制

follow的LEO更新机制包括follow所在broker的follow的LEO更新机制以及Leader所在broker的follow的LEO更新机制。

follow所在broker的follow的LEO更新机制主要是为了follow的HW更新;

Leader所在broker的follow的LEO更新机制主要是为了Leader的HW更新。

(1)follow所在broker的follow的LEO更新机制

在follow向Leader发送fetch同步请求后,Leader将数据返回,此时follow向底层log写入数据然后更新LEO。

(2)Leader所在broker的follow的LEO更新机制

在follow向Leader发送fetch同步请求后,Leader收到后首先从自己底层log读取数据,然后根据Leader上的follow的LEO。再向follow发送响应。

1.2 Leader的LEO更新机制

在producer向Leader发送producer同步请求后,Leader收到数据,此时Leader向底层log写入数据然后更新LEO。

二 HW更新机制

2.1 follow的HW更新机制

更新时机:follow收到Leader的fetch响应更新follow端的LEO后,尝试更新follow的HW。

更新方式:HW=min(follow端的LEO,fetch响应中LEADER的HW)

2.2 LEADER的HW更新机制

更新时机:(1)新副本成为LEADER副本;(2)broker崩溃;(3)producer向LEADER请求写入了数据更新了LEADER的LEADER LEO;(4)follow向LEADER请求同步,更新了LEADER的follow的LEO

更新方式:HW=min(LEADER LEO, all follows' LEO in LEADR broker)

这里的所有follow包括ISR以及即将具备入ISR还没来得及入ISR的副本(副本LEO落后LEADER LEO的时长低于replica.lag.time.max.ms)

设一个主题,分区数1,副本因子2。

第一轮fetch

生产者给该topic发送了一条信息,待Leader写入log后更新Leader端的LEO=1;尝试更新Leader 的hw,hw=min(leader leo,follow leo)=0故hw=0

follow发送fetch请求,请求中附带follow端的follow leo=0,Leader读取log然后更新Leader的follow leo=0(因为fetch请求中附带follow端的follow leo=0);尝试更新Leader hw=min(leader leo,follow leo)=0,故塞给fetch相应中的leader hw=0

follow收到fetch请求后,写log,更新leo=1,follow的hw=min(leo, leader hw)=0

第二轮fetch

follow发送fetch请求,请求中附带follow端的follow leo=1,Leader读取log然后更新Leader的follow leo=1(因为fetch请求中附带follow端的follow leo=1);尝试更新Leader hw=min(leader leo,follow leo)=1故塞给fetch相应中的leader hw=1

follow收到fetch请求后,写log,此时无数据,故leo=1,follow的hw=min(leo, leader hw)=1

这篇关于KAFKA 服务端日志LEO和HW说明的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/629771

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

我在移动打工的日志

客户:给我搞一下录音 我:不会。不在服务范围。 客户:是不想吧 我:笑嘻嘻(气笑) 客户:小姑娘明明会,却欺负老人 我:笑嘻嘻 客户:那我交话费 我:手机号 客户:给我搞录音 我:不会。不懂。没搞过。 客户:那我交话费 我:手机号。这是电信的啊!!我这是中国移动!! 客户:我不管,我要充话费,充话费是你们的 我:可是这是移动!!中国移动!! 客户:我这是手机号 我:那又如何,这是移动!你是电信!!

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10

android应用中res目录说明

Android应用的res目录是一个特殊的项目,该项目里存放了Android应用所用的全部资源,包括图片、字符串、颜色、尺寸、样式等,类似于web开发中的public目录,js、css、image、style。。。。 Android按照约定,将不同的资源放在不同的文件夹中,这样可以方便的让AAPT(即Android Asset Packaging Tool , 在SDK的build-tools目

Java Websocket实例【服务端与客户端实现全双工通讯】

Java Websocket实例【服务端与客户端实现全双工通讯】 现很多网站为了实现即时通讯,所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发 出HTTP request,然后由服务器返回最新的数据给客服端的浏览器。这种传统的HTTP request 的模式带来很明显的缺点 – 浏 览器需要不断的向服务器发出请求,然而HTTP

JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性

一、什么是提升系统的高可用性 JAVA服务端,顾名思义就是23体验网为用户提供服务的。停工时间,就是不能向用户提供服务的时间。高可用,就是系统具有高度可用性,尽量减少停工时间。如何用最简单的方法来搭建一个高效率可用的服务端JAVA呢? 停工的原因一般有: 服务器故障。例如服务器宕机,服务器网络出现问题,机房或者机架出现问题等;访问量急剧上升,导致服务器压力过大导致访问量急剧上升的原因;时间和

Adblock Plus官方规则Easylist China说明与反馈贴(2015.12.15)

-------------------------------特别说明--------------------------------------- 视频广告问题:因Adblock Plus的局限,存在以下现象,优酷、搜狐、17173黑屏并倒数;乐视、爱奇艺播放广告。因为这些视频网站的Flash播放器被植入了检测代码,而Adblock Plus无法修改播放器。 如需同时使用ads