kafka学习笔记

1、生产者

kafka基础架构

发送流程

在消息发送的过程中,涉及到了两个线程------main线程和Sender线程 。在main线程中创建了一个双端队列RecordAccumulator。main线程将消息发送给RecordAccumulator,Sender线程不断从RecordAccumulator中拉取消息发送到KafkaBroker。

生产者重要参数配置

kafka分区的好处

kafka生产者发送消息分区策略

生产者如何提高吞吐量

如何保证发送数据的可靠性

如何保证数据不重复(幂等性和事务)

如何保证数据有序

2、broker

Zookeeper 存储的 Kafka信息

Kafka Broker总体工作流程

broker重要参数

副本基本信息

(1)Kafka 副本作用:提高数据可靠性。

(2)Kafka 默认副本 1 个,生产环境一般配置为 2 个,保证数据可靠性;太多副本会

增加磁盘存储空间,增加网络上数据传输,降低效率。

(3)Kafka 中副本分为:Leader 和 Follower。Kafka 生产者只会把数据发往 Leader,

然后 Follower 找 Leader 进行同步数据。

(4)Kafka 分区中的所有副本统称为 AR(Assigned Repllicas)。

AR = ISR + OSR

ISR ,表示和 Leader 保持同步的 Follower 集合。如果 Follower 长时间未向 Leader 发送通信请求或同步数据,则该 Follower 将被踢出 ISR。该时间阈值由 replica.lag.time.max.ms参数设定,默认 30s。Leader 发生故障之后,就会从 ISR 中选举新的 Leader。

OSR,表示 Follower 与 Leader 副本同步时,延迟过多的副本。

Leader选举流程

Leader Follower 故障处理细节

Leader Partition 负载平衡

kafka数据文件存储

文件清理策略

kafka高效读写数据的原理

1)Kafka 本身是分布式集群,可以采用分区技术,并行度高

2)读数据采用稀疏索引,可以快速定位要消费的数据

3)顺序写磁盘

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

4 )页缓存 + 零拷贝技术

3、消费者

kafka消费模式

消费者工作流程

消费者组原理

消费者组初始化流程

消费者组详细消费流程

消费者重要参数配置

分区的分配与再平衡

分区策略

offset的维护位置

自动提交与手动提交offset

指定offset消费

重复消费与漏消费

消息者如何提交吞吐量

相关推荐
黄雪超4 小时前
Kafka——消费者组消费进度监控都怎么实现?
大数据·分布式·kafka
itLaity18 小时前
基于Kafka实现简单的延时队列
spring boot·分布式·kafka
IT邦德1 天前
OGG同步Oracle到Kafka不停库,全量加增量
数据库·oracle·kafka
黄雪超2 天前
Kafka——多线程开发消费者实例
大数据·分布式·kafka
武子康2 天前
大数据-52 Kafka 架构全解析:高吞吐、高可用分布式消息系统的核心奥秘
大数据·后端·kafka
ATaylorSu2 天前
Kafka入门指南:从零开始掌握分布式消息队列
笔记·分布式·学习·kafka
不辉放弃3 天前
kafka的shell操作
数据库·kafka·pyspark·大数据开发
cui_win4 天前
kafka 消费者组
分布式·kafka
Albert.H.Holmes4 天前
详述消息队列kafka
分布式·kafka
梦想画家4 天前
深入解析:如何在Kafka中配置Source和Sink连接器构建高效数据管道
kafka·kafka connector