这是我参加「第四届青训营 」笔记创作活动的的第9天

课程资料

课程链接:live./4354/yc_Kaf…

学员手册:/post/712681…

课程TTP:bytedance.feishu.cn/file/boxcn9…

完好手册:bytedance.feishu.cn/docx/doxcnE…

一、音讯行列概述

音讯行列

Kafka架构介绍|青训营笔记

使用场景

  • MQ音讯通道:异步解耦、削峰填谷、发布订阅、高可用

Kafka架构介绍|青训营笔记

  • EventBridge数据总线

    • 事情源:将云服务、自定义使用、SaaS使用等使用程序产生的事情音讯发布到事情集
    • 事情集:存储接收到的事情音讯,根据事情规则将音讯路由到事情方针
    • 事情方针:消费事情音讯

Kafka架构介绍|青训营笔记

  • Data Platfrom 数据流平台

    • 供给批/流数据处理才能
    • 各类组件供给各类Connect
    • 供给Streaming/Function才能
    • 根据数据schema灵敏的进行数据预处理才能

Kafka架构介绍|青训营笔记

二、Kafka详解

Kafka架构介绍

Kafka架构介绍|青训营笔记

Zookeeper

Kafka架构介绍|青训营笔记

  • 选举机制:Paxos机制
  • 供给一致性:写入强一致性、读取会话一致性
  • 供给可用性:一半以上节点存活即可读写
  • 供给功用:watch机制、耐久/临时节点才能

Borker

Kafka架构介绍|青训营笔记

  • 若干个Broker节点组成Kafka集群
  • Broker作为音讯的接受模块,使用React网络模型进行音讯数据的接受
  • Broker作为音讯的耐久化模块,进行音讯的副本复制以及耐久化
  • Broker作为高可用模块,通过副本间的Failover进行高可用确保

Controller选举

Kafka架构介绍|青训营笔记

  • Broker启动会尝试去zk中注册controller节点
  • 注册上controller节点的broker即为controller
  • 其余broker会watch controller节点,节点出现异常进行从头注册

Controller的效果

Kafka架构介绍|青训营笔记

  • Broker重启/宕机时,担任副本的Failover操作
  • Topic创建/删去时,担任Topic meta信息广播
  • 集群扩缩容时,进行状况控制
  • Partition/Replica 状况机保护

Coordinator

Kafka架构介绍|青训营笔记

  • 担任topic-partition与consumer的负载均衡
  • 根据不同的场景供给不同的分配战略

Kafka高可用

kafka副本ISR机制

Kafka架构介绍|青训营笔记

  • AR:现已分配的所有副本
  • OSR:很久没有同步数据的副本
  • ISR:一直在同步数据的副本

kafka写入Ack机制

  • Ack=1:leader副本写入成功,priducer即认为写成功
  • Ack=0:producer发送后即为成功
  • Ack=-1:ISR中所有的副本都成功,producer才认为写成功

kafka副本同步

Kafka架构介绍|青训营笔记

  • LEO:日志最末尾的数据
  • HW:ISR中最小的LEO作为HW,HW的音讯为Consumer可见的音讯

kafka副本选举

Kafka架构介绍|青训营笔记

  • Clean选举:优先选取lsr中的副本为leader,假如lsr中无可用副本,则partition不可用
  • Unclean选举:优先选取lsr中的副本为leader,假如lsr中无可用副本,则选择其他存活副本