Kafka 架构
Apache Kafka 入门
Mike Metzger
Data Engineering Consultant
Kafka 组件
Kafka 服务器
一个或多台计算机构成的集群
存储数据
管理通信
也可与其他系统集成(数据库、日志等)
Kafka 客户端
通过 Kafka consumer 读取
通过 Kafka producer 写入
按需处理数据
Kafka 服务器
存储(Kafka Broker)
生产者写入的数据按主题存储与组织
主题被分区,即分片存储
消息/事件按事件 ID 写入到某个分区
读取顺序与写入顺序一致
1
图片来源 https://kafka.apache.org/intro
分区与副本
Kafka 具备容错能力
一台离线,其他可提供所需数据
最大可承受故障数 == 副本因子 - 1
最大副本因子 == 服务器数量
通过复制分区实现副本
示例
含 3 个代理的 Kafka 集群
定义了 3 个主题
2 倍副本 == 可容忍 1 台故障
代理 1 存有主题 1 和主题 2 的副本
代理 2 存有主题 2 和主题 3 的副本
代理 3 存有主题 1 和主题 3 的副本
每个主题在集群中分布于 2 个代理
1 个故障示例
代理 2 故障
副本因子 2x
2 - 1 == 可承受 1 台故障
每个主题仍至少在集群中有一份副本
2 个故障示例
2 个代理故障
副本因子 2x
故障数超出支持(1 台)
主题 2 在集群中不可用
主题 1 和 3 仍可用,非完全宕机
开始练习吧!
Apache Kafka 入门
Preparing Video For Download...