第1章 - 初识 Kafka

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值