(一)Kafka初记

        最近,计划将Kafka重新学习一遍,因此记录一些我认为重要的知识点。

一、基本概念

1.一个或多个Broker(服务代理节点)组成了一个Kafka集群。

2.一个topic可细分为多个分区(一个分区只属于单个topic),分区可以分布在不同的服务器(Broker)上,分区中消息是不同的。

3.offset是消息在分区中唯一标识,kafka通过它来保证消息在分区内的顺序性,offset不分区,因此不保证topic的顺序性。

4.同一分区有多个副本(一主多从,每个副本的消息是同步的,但在同一时刻,副本之间并非完全一样),leader副本负责读写,follower副本负责与leader副本消息同步。

5.分区中所有副本统称为AR(Assigned Replicas)

   所有与follower副本保持一定程度同步(指可忍受的滞后范围,可通过参数配置)的副本(包括leader副本)组成ISR(In-Sync Replicas)。

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

   综上可得,AR=ISR+OSR,但是正常情况下,一般AR=ISR。

6.HW(High Watermark)俗称高水位,它标志了一个特定的消息偏移量(offset),消费者只能拉取到这个offset之前的消息。eg:若日志文件的HW为8,表示消费之只能拉取到offset在0-7之间的消息,而offset为8的消息消费者是不可见的。

7.LEO(Log End Offset)标识当前文件中心下一条待写入消息的offset。

 8.分区ISR集合中的每个副本都会维护自身的LEO,而ISR集合中最小的LEO即为分区HW,对消费者而言只能消费HW之前的消息。例如:有三个副本,一个leader两个follwer,其中每leader的LEO为5,follwer1完全同步后LEO也为5,follwer1部分同步LEO为4,此时分区的HW为4。

9.同步复制要求所能工作的follower副本都复制完,这条消息才会被确认为已成功提交。

  异步复制,只要leader副本写入就被热内而出这条消息已成功提交。这种情况,如果如果follower副本没有复制完落后于leader,突然leader宕机,则会导致数据丢失。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值