《Kafka入门与实践》读书笔记


1 . Kafka简介

Kafka定位是一个分布式流处理平台,具备以下3个特性:

  • 能够允许发布和订阅数据
  • 存储流数据时提供相应的容错机制
  • 流数据到达时能够被及时处理

1.1 Kafka基本概念

  1. 主题 topic

    对消息的分类

  2. 消息 message

    kafka通信的基本单位,

  3. 分区和副本 Partition Replica

    每个主题被分为一个或多个分区,每个分区由一系列有序、不可变的消息组成,是一个有序队列。每个分区在物理上对应一个文件夹,命名规则(topic-0,topic-1,topic-2)。

    每个分区有一个至多个副本。副本分布在集群的不同代理上,以提高可用性。

    分区使得kafka在并发处理上更加容易,分区数越多,吞吐量越高。分区也是保证消息被顺序消费以及对消息进行负载均衡的基础。

  4. Leader副本和Follower副本

    kafka会选择该分区的一个副本作为leader副本,该分区的其他副本为Follower副本,只有leader副本才处理客户端的读写请求,Follower副本从leader副本同步数据。保证了数据的一致性和有序性。如果leader失效,通过选举算法从其他Follower副本中选出新的leader副本

  5. 偏移量 offset

    发布到分区的消息会被直接追加到日志文件(分区目录下以.log后缀的数据文件)的尾部,每条消息在日志文件中的位置都会对应一个按序递增的偏移量。消费者可用过控制偏移量来对消息进行消费。

    旧版消费者将offset保存在zookeeper中,新版消费者保存在kafka内部的一个主题中,消费者也可以自己在外部系统保存offset。

  6. 日志段 logsegment

    一个日志被划分为多个日志段,日志段是kafka日志对象分片的最小单位。一个日志段对应磁盘上一个具体日志文件和两个索引文件。

    日志文件(.log)保存消息实际数据。两个索引文件(.index 和.timeindex),分别表示消息偏移量索引文件和消息时间戳索引文件。

  7. 代理 Broker

    kafka集群由一个或者多个kafka实例构成,每个kafka实例称为代理(Broker)。每个broker有一个唯一id(非负整数,配置中broker.id的值)。

  8. 生产者

    发消息给broker

  9. 消费者和消费者组 consumer 和 consumer group

    以pull方式拉数据。每一个消费者属于一个特定消费组,groupid代表消费组名称,通过group.id配置。如果没有指定消费组,则该消费者属于默认消费组test-consumer-group。

    每个消费者通过配置项client.id设置唯一id,如果客户端没有指定clientid,kafka会为client自动生成一个唯一id。

    同一个topic的一条消息只能被同一个消费组下某一个消费组消费。

  10. ISR (In-sync Replica)

    kafka在zookeeper中动态维护一个ISR,即保存同步的副本列表,保存了与leader副本保存消息同步的所有副本对应的代理节点id。如果一个Follower副本宕机或是落后太多,将从ISR中被移除。

  11. Zookeeper

    kafka使用zookeeper保存相应元数据信息。包括代理节点信息、kafka集群信息、旧版消费者信息及其消费偏移量信息、主题信息、分区状态信息、分区副本分配方案信息、动态配置信息等。

1.2 kafka设计

特性:

  1. 消息持久化

    使用文件系统存储数据。顺序追加。

  2. 高吞吐量

    kafka将数据写到磁盘,充分利用磁盘的顺序读写。同时,kafka在数据写入及数据同步采用了零拷贝(zero-copy)技术,采用sendFile()函数调用,在两个文件描述符之间直接传递数据,完全在内核中操作,从而避免了内核缓冲区与用户缓冲区之间数据的拷贝,操作效率极高。

    kafka还支持数据压缩以及批量发送,同时将每个主题划分为多个分区,这一系列优化是的kafka具有很高的吞吐量。

  3. 扩展性

    依赖zookeeper对集群进行协调管理,更加容易进行水平扩展。在机器扩展期间无需将整个集群停机,集群自动感知,重新进行负载均衡和数据复制。

  4. 多客户端支持

  5. kafka streams

    在0.10之后版本中引入kafka streams。是一个用java实现的用于流处理的jar文件。

  6. 安全机制

    通信时数据加密

  7. 数据备份

    副本

  8. 轻量级

    broker无状态,不记录消息是否被消费,offset交给消费者或者组协调器管理

  9. 消息压缩

    提高吞吐量

1.3 kafka应用场景

  • 消息系统

  • 应用监控

    kafka+ELK 整合构建应用服务监控系统

  • 网站用户行为追踪

    kafka+hadoop+spark+strom进行数据分析处理

  • 流处理(kafka streams)

  • 持久性日志

    kafka+hdfs+Flume

2. Kafka安装配置

3. Kafka核心组件

3.1 延迟操作组件

3.2 控制器

3.3 协调器

3.4 网络通信服务

3.5 日志管理器

3.6 副本管理器

3.7 Handler

3.8 动态配置管理器

3.9 代理健康监测

3.10 Kafka内部监控

4. Kafka核心流程分析

5. Kafka基本操作实战

6. Kafka API实战

7. Kafka Streams

8. Kafka数据采集

9. Kafka与ELK整合应用

10. Kafka与Spark整合应用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容