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消费

重复消费与漏消费

消息者如何提交吞吐量

相关推荐
IT成长日记17 小时前
【Kafka基础】Kafka工作原理解析
分布式·kafka
州周19 小时前
kafka副本同步时HW和LEO
分布式·kafka
程序媛学姐21 小时前
SpringKafka错误处理:重试机制与死信队列
java·开发语言·spring·kafka
小马爱打代码2 天前
Kafka - 消息零丢失实战
分布式·kafka
长河2 天前
Kafka系列教程 - Kafka 运维 -8
运维·分布式·kafka
Vic23342 天前
Kafka简要介绍与快速入门示例
分布式·kafka
老友@3 天前
Kafka 全面解析
服务器·分布式·后端·kafka
半间烟雨3 天前
⼆、Kafka客户端消息流转流程
分布式·kafka
FLGB3 天前
Kafka延迟队列实现分级重试
分布式·kafka
java1234_小锋3 天前
Kafka中的消息是如何存储的?
分布式·kafka