首页 > 其他分享 >kafka入门(八):副本

kafka入门(八):副本

时间:2024-01-18 23:55:07浏览次数:15  
标签:副本 入门 Replicas ISR kafka follower leader

副本

kafka 副本之间是 一主多从的关系。

其中 leader 副本负责处理读写请求,follower 副本只负责与 leader 副本的消息同步。

副本处于不同的 broker中,当 leader 副本出现故障时,从 follower 副本中重新选举新的 leader 副本对外提供服务。

kafka 通过多副本机制实现了故障的自动转移,当 kafka集群中某个 broker 失效时仍然能保证服务可用。

ISR (In-Sync Replicas)

所有与 leader 副本保持一定程度同步的副本(包括leader副本在内) 组成 ISR (In-Sync Replicas)

只有在 ISR 集合中的副本才有资格被选举为新的 leader。

OSR (Out-of-Sync Replicas)

消息先发送到 leader 副本,然后 follower 副本才能从 leader 副本中拉取消息进行同步,同步期间 follower 副本相对 leader 副本会有一定程序的滞后。

与 leader 副本同步滞后过多的副本(不包括 leader副本) 组成 OSR (Out-of-Sync Replicas)。

leader副本负责维护和跟踪ISR集合中所有follower副本的滞后状态,当follower副本落后太多或失效时,leader副本会把它从ISR集合中剔除。

如果OSR集合中有follower副本“追上”了leader副本,那么leader副本会把它从OSR集合转移至ISR集合。

AR (Assigned Replicas)

分区中的所有副本统称为 AR(Assigned Replicas) 。 AR = ISR + OSR。

HW (High Watermark)

HW , 俗称"高水位"。它标识了一个特定的消息偏移量( offset ) , 消费者只能拉取到这个 offset 之前的消息 。

LEO (Log End Offset )

LEO, 它标识当前日志文件中下一条待写入消息的 offset。

分区 ISR 集合中的每个副本都会维护自身的 LEO.而 ISR 集合中最小的 LEO 即为分区的 HW, 对消费者而言只能消费 HW 之前的消息。

资料来源:

《深入理解 Kafka-- 核心设计与实践原理》

标签:副本,入门,Replicas,ISR,kafka,follower,leader
From: https://www.cnblogs.com/expiator/p/17973700

相关文章

  • 普普通通入门js案例(原生)
    数组中数据的遍历 vararr=[34,3,4,3]; for(i=0;i<arr.length;i++){ console.log(arr[i]); }求数组中的最大值 vararr=[34,3,4,3]; max=arr[0]; for(i=1;i<arr.length;i++){ if(max<arr[i]){ max=arr[i]; } }求数组中的平......
  • kafka消费
    多线程消费方式方式1:一个线程对应一个消费者消费者数量不大于分区数,最好也能对等起来方式2:多线程消费同一个分区位移提交和顺序控制的处理非常复杂,不推荐方式1:消费者==分区数intthreadNum=4;for(inti=0;i<threadNum;i++){ newKafkaConsumer(config,"tcp_link......
  • day 02java入门之Hello.java
    java命令行执行(注意代码编写用GBK,命令行窗口用GBK进行解析)注意public类名要和文件名一致,一个.java文件中最多只有一个public类java注意事项一个.java文件中若含有多个类时,编译完成后会生成相应个数的.class文件......
  • 跨语言调用神器SWIG介绍与使用入门
    安装依赖PCRE库apt-getinstalllibpcre2-dev下载安装$./configure$make$makeinstall介绍SWIG是一个软件开发工具,能够简化不同编程语言与C和C++程序连接的开发任务。简而言之,SWIG是一款编译器,它可以获取C/C++声明并创建访问这些声明所需的包装器,从而可从......
  • Web前端新手入门系列:案例1 招商银行页面的制作
    一次比较复杂的网页设计(对初学者而言)效果图代码可能不太符合规范,但效果差不多(HTML部分<!DOCTYPEhtml><htmllang="en"xmlns="http://www.w3.org/1999/xhtml"><head><metacharset="utf-8"/><title>招商银行</title>&......
  • xapian 搜索引擎介绍与使用入门
    Xapian是一个开源搜索引擎库,使用C++编写,并提供绑定(bindings )以允许从多种编程语言使用。它是一个高度适应性的工具包,允许开发人员轻松地将高级索引和搜索功能添加到自己的应用程序中。Xapian支持多种加权模型和丰富的布尔查询运算符。最新稳定版本是1.4.24,发布于2023年......
  • 奇迹Mu中冒险家们的新任务——挑战副本
    奇迹Mu作为一款经典的多人在线角色扮演游戏,在其丰富多彩的游戏世界中,紧跟潮流的游戏开发者们也不断推出更新和新玩法,以吸引更多的玩家加入其中。不久前,奇迹Mu更新了一项全新玩法——挑战副本。这项新任务不仅为冒险家们带来了更多的挑战和乐趣,更为游戏的发展注入了新的活力。以下......
  • Istio从入门到精通—— 安装 —— Kubernetes 删除 istio-system namesapce 时候,出现
    Kubernetes删除istio-systemnamesapce时候,出现Terminating解决办法当你在Kubernetes中遇到无法删除处于Terminating状态的命名空间时,可能是由于该命名空间中仍有活跃的资源或服务。要解决这个问题,你可以尝试以下几个步骤:一、常规方法检查命名空间中的活跃资源:......
  • 入门Linux运维工程师需要掌握的知识点和工具以及技能
    Linux系统的学习,可以选用redhat或centos,特别是centos在企业中用得最多,当然还会有其它版本的,比如Ubuntu等,根据自己的工作情况和兴趣来定。当然不同发行版本主要是包上的区别以及一些命令的差异,其他内核上的东西都大同小异。对于刚入门或准备入门Linux运维的来说,整理总结了以下10个......
  • 【云原生】Docker入门 -- 阿里云服务器环境下安装Docker
    【云原生】Docker入门--阿里云服务器环境下安装Docker:https://wanghuichen.blog.csdn.net/article/details/125139901?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-125139901-blog-132249920.235%5Ev40%5Ep......