第1章 - 初识 Kafka

本文深入探讨Kafka的特性,如高吞吐、可持久化及水平扩展能力,解析其消息系统如何实现系统解耦、冗余存储等功能。详细介绍了Kafka的架构组成,包括Producer、broker、Consumer及Zookeeper集群,阐述了Topic、Partition的概念,以及offset如何确保消息顺序性。同时,文章还讲解了一主多从的副本机制,leader与follower的角色与职责,以及ISR、OSR集合的运作原理。

2020/7/31 15:15:20

特性

高吞吐、可持久化、可水平扩展、支持流数据处理

消息系统

系统解耦、冗余存储、流量削峰、缓冲、异步通信、扩展性、可恢复性

消息顺序性保障、回溯消费

存储系统

磁盘存储、多副本机制

Topic的日志压缩功能

流式处理平台

流式处理类库:窗口、连接、变换、聚合…

架构

Producer、broker、Consumer、Zookeeper集群

Topic、Partition

分区在存储层面可以看作一个可追加的Log文件

offset 消息在分区中的唯一标识,用来保证消息在分区内的顺序性,不跨分区(即分区内有序,而不是主题有序)

多副本机制

一主多从

leader

负责与Producer和Consumer交互
负责维护和跟踪ISR中所有follower的滞后状态,和副本在ISR、OSR之间的转移

follower

只负责同步leader消息

follower相对leader会有一定程度的消息滞后(指可忍受的滞后范围,可通过参数配置)

AR集合 所有副本

ISR集合 与leader保持一定程度同步的副本(包括leader),有资格被选举

OSR集合 与leader同步滞后过多的副本(不包括leader),没有资格被选举(可通过配置参数修改)

AR=ISR+OSR。正常情况下AR=ISR,OSR=null

副本同步

HW(High Watermark) 标识一个offset,Consumer只能拉取HW之前(不含HW)的消息

LEO(Log End Offset) 标识当前日志文件中下一条待写入消息的offset。由每个副本自身维护

ISR中,分区的HW=min(LEO)

理解

对于一个分区的ISR:
1. 消息写入leader前,初始状态所有副本LEO保持一致,HW=LEO;
2. 消息写入leader后,leaderLEO变大,HW<leaderLEO;
3. follower开始同步数据,HW=min(followerLEO)<leaderLEO;
4. follower同步结束,所有副本LEO保持一致,HW=LEO。
注:在整个过程中,Consumer只能消费HW之前(不含HW)的消息

Kafka副本机制,既不是完全的同步复制,也不是单纯的异步复制,有效的权衡了数据可靠性和性能之间的关系

安装与配置

JDK、Zookeeper、Kafka

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值