玩转大数据大数据大数据,机器学习,人工智能

干货 | Kafka 内核知识梳理,附思维导图

2020-05-24  本文已影响0人  大数据技术架构

前面我们已经分享过几篇Kafka的文章,最近简单梳理了下Kafka内核相关的知识,涵盖了Kafka架构总结,副本机制,控制器,高水位机制,日志或消息存储,消息发送与消费机制等方面知识。文末含对应的Kafka内核思维导图,供参考

1、 架构总结

1)Kafka实际上也是一个主从架构,有一个Controller角色即控制器,协调管理整个集群;

2)有几个Kafka术语肯定是不陌生的:broker,topic,partition,segment,生产者producer,消费者consumer;

2、消费发送机制

1)序列化器:序列化消息对象转成字节数组,然后通过网络传输。

2)分区器:计算消息发往的具体分区;如果显示指定了partition,便不会走分区器。

3)消息缓冲池:客户端的消息缓冲池,默认大小32M,见参数buffer.memory。

4)批量发送:缓冲池中消息会按batch分批次发送,默认批次大小16KB,见参数batch.size。

3、副本机制

1)分区副本默认1,见参数default.replication.factor。

2)副本作用(并不提供读写分离)

3)leader副本选举

4)Unclean leader选举

参数unclean.leader.election.enable,用于控制是否允许非同步副本参与leader 选举,默认false。如果开启,则当ISR为空时就会从这些副本中选举新的leader,这个过程就称为Unclean leader选举。

4、控制器概述

1)作用:协调与管理整个集群,5个主要职责:

2)控制器选举:基于zookeeper实现,利用了zookeeper的znode模型与监听机制。

3)控制器故障转移

5、HW机制

1)概念

HW即高水位,是Kafka副本对象的重要属性,分区的高水位由leader副本的高水位表示,含义是被follower副本同步之后的位置。

2)作用

3)LEO的概念

含义是日志末端位移(Log End Offset),下一条消息写入的位移。

6、消息消费机制

1)拉取机制

Kafka生产端是推的机制即Push,消费端是拉的机制即Pull。

2)Pull的优缺点

3)消息投递语义:

Kafka默认保证at-least-once delivery,容许用户实现at-most-once语义,exactly-once的实现取决于目的存储系统。

4)分区分配策略

7、日志存储机制

1)原理

$ ll
-rw-r--r-- 1 kafka kafka    1002496 Apr 25 17:08 00000000000051402174.index
-rw-r--r-- 1 kafka kafka 1073741338 Apr 25 17:08 00000000000051402174.log
-rw-r--r-- 1 kafka kafka   10485760 Apr 26 15:03 00000000000051638285.index
-rw-r--r-- 1 kafka kafka  219984088 Apr 26 15:04 00000000000051638285.log

2)日志留存策略Kafka 会定期检查是否要删除旧消息,见参数 log.retention.check.interval.ms,默认5分钟。当前有三种日志留存策略:

目前基于时间的日志留存策略最常使用。


为了更好的精进学习Kafka,笔者参考本文制作了的一张思维导图,分享:

关注本公众号,后台回复 kafka2020 即可下载Kafka内核高清PDF文档。

往期推荐

1、如何快速全面掌握Kafka?5000字吐血整理
2、HBase原理 | HBase Compaction介绍与参数调优
3、MapReduce Shuffle 和 Spark Shuffle 结业篇
4、实时数仓 | 你想要的数仓分层设计与技术选型

上一篇下一篇

猜你喜欢

热点阅读