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

重复消费与漏消费

消息者如何提交吞吐量

相关推荐
时鲟、时倾15 小时前
docker部署kafka
docker·容器·kafka
编啊编程啊程1 天前
【029】智能停车计费系统
java·数据库·spring boot·spring·spring cloud·kafka
熙客2 天前
Kafka:专注高吞吐与实时流处理的分布式消息队列
分布式·中间件·kafka
熊文豪2 天前
在 openEuler 上部署 Kafka 集群:深度性能评测与优化指南
分布式·kafka·openeuler
陈果然DeepVersion2 天前
Java大厂面试真题:Spring Boot+Kafka+AI智能客服场景全流程解析(十)
java·spring boot·ai·kafka·面试题·向量数据库·rag
陈果然DeepVersion3 天前
Java大厂面试真题:Spring Boot+Kafka+AI智能客服场景全流程解析(十一)
java·spring boot·微服务·ai·kafka·面试题·rag
帅次3 天前
系统分析师-案例分析-数据库系统&数据仓库&反规范化技术&NoSQL&内存数据库
大数据·数据库·数据仓库·oracle·kafka·数据库开发·数据库架构
零雲3 天前
java面试:有了解过kafka架构吗,可以详细讲一讲吗
java·面试·kafka
sakoba3 天前
Linux上kafka部署和使用
linux·运维·kafka
一行•坚书3 天前
kafka服务端与客户端如何协作?生产者发送消息分区策略是什么?消费者组分区策略?集群与ACK机制?
java·后端·kafka