Kafka深入学习笔记(六) Kafka高效读写 & Zookeeper & 事务

Kafka深入学习笔记系列  Kafka高效读写 & Zookeeper & 事务

目录

Kafka深入学习笔记系列  Kafka高效读写 & Zookeeper & 事务

一、Kafka高效读写

1.顺序写磁盘

2.零复制技术

二、Zookeeper 在 Kafka 中的作用

三、Kafka事务

1. Producer事务

2.Consumer事务

笔记来源:学习尚硅谷Kafka系列视频


Kafka深入学习笔记系列 

Kafka深入学习笔记(一) 总览

Kafka深入学习笔记(二) Kafka常用命令

Kafka深入学习笔记(三) Kafka工作流程

Kafka深入学习笔记(四) 生产者Producer深入剖析

Kafka深入学习笔记(五) 消费者Consumer深入剖析

Kafka深入学习笔记(六) Kafka高效读写 & Zookeeper & 事务

Kafka深入学习笔记(七) Kafka监控系统Eagle


 

 

一、Kafka高效读写

1.顺序写磁盘

Kafka 的 producer 生产数据,要写入到log文件中,写的过程是一直追加到文件末端, 为顺序写。官网有数据表明,同样的磁盘顺序写能到 600M/s,而随机写只有 100K/s。这与磁盘的机械机构有关,顺序写之所以快,是因为其省去了大量磁头寻址的时间

2.零复制技术


二、Zookeeper 在 Kafka 中的作用

Kafka 集群中有一个 broker 会被选举为 Controller,负责管理集群 broker 的上下线所有 topic 的分区副本分配leader 选举等工作。

Controller 的管理工作都是依赖于 Zookeeper 的。 以下为 partition 的 leader 选举过程


三、Kafka事务

Kafka 从 0.11 版本开始引入了事务支持。事务可以保证 Kafka 在 Exactly Once 语义的基础上生产和消费可以跨分区和会话要么全部成功,要么全部失败

1. Producer事务

为了实现跨分区跨会话的事务,需要引入一个全局唯一Transaction ID,并将 Producer 获得的 PID 和 Transaction ID 绑定。这样当 Producer 重启后就可以通过正在进行的 Transaction ID 获得原来的 PID

为了管理 Transaction,Kafka 引入了一个新的组件 Transaction CoordinatorProducer 就是通过和 Transaction Coordinator 交互获得 Transaction ID 对应的任务状态。Transaction Coordinator 还负责将事务所有写入 Kafka 的一个内部 Topic,这样即使整个服务重启,由于事务状态得到保存,进行中的事务状态可以得到恢复,从而继续进行

2.Consumer事务

对于 Consumer 而言,事务的保证就会相对较弱,尤其时无法保证 Commit 的信息被精确消费。这是由于 Consumer 可以通过 offset 访 问任意信息,而且不同的 Segment File 生命周期不同,同一事务的消息可能会出现重启后被删除的情况。


Kafka深入学习笔记系列 

Kafka深入学习笔记(一) 总览

Kafka深入学习笔记(二) Kafka常用命令

Kafka深入学习笔记(三) Kafka工作流程

Kafka深入学习笔记(四) 生产者Producer深入剖析

Kafka深入学习笔记(五) 消费者Consumer深入剖析

Kafka深入学习笔记(六) Kafka高效读写 & Zookeeper & 事务

Kafka深入学习笔记(七) Kafka监控系统Eagle

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值