Kafka架构介绍|青训营笔记

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 本文主要讲解了kafka作为分布式消息队列的整体架构,主要从:1.zookeeper;2.broker;3.controller选举;4.coorinator进行介绍

课程资料

课程链接:https://live.juejin.cn/4354/yc_Kafka/preload

学员手册:https://juejin.cn/post/7126813033602482190/#heading-54

课程TTP:https://bytedance.feishu.cn/file/boxcn9G9NlIy8VPrcpqmYYNlDsb

完整手册:https://bytedance.feishu.cn/docx/doxcnECGEFkCKYqbxaDipK1qrVf

一、消息队列概述

消息队列

image-20220809133811754

应用场景

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

image-20220809134009898

  • EventBridge数据总线

    • 事件源:将云服务、自定义应用、SaaS应用等应用程序产生的事件消息发布到事件集
    • 事件集:存储接收到的事件消息,根据事件规则将消息路由到事件目标
    • 事件目标:消费事件消息

image-20220809134204933

  • Data Platfrom 数据流平台

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

image-20220809134656063

二、Kafka详解

Kafka架构介绍

image-20220809135033681

Zookeeper

image-20220809135151135

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

Borker

image-20220809135357743

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

Controller选举

image-20220809135720105

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

Controller的作用

image-20220809135937217

  • Broker重启/宕机时,负责副本的Failover操作
  • Topic创建/删除时,负责Topic meta信息广播
  • 集群扩缩容时,进行状态控制
  • Partition/Replica 状态机维护

Coordinator

image-20220809140216861

  • 负责topic-partition与consumer的负载均衡
  • 根据不同的场景提供不同的分配策略

Kafka高可用

kafka副本ISR机制

image-20220809140623406

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

kafka写入Ack机制

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

kafka副本同步

image-20220809141011783

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

kafka副本选举

image-20220809141136153

  • Clean选举:优先选取lsr中的副本为leader,如果lsr中无可用副本,则partition不可用
  • Unclean选举:优先选取lsr中的副本为leader,如果lsr中无可用副本,则选择其他存活副本
相关文章
|
16天前
|
存储 负载均衡 架构师
架构笔记汇总
架构笔记汇总
50 1
|
4天前
|
消息中间件 缓存 Kafka
图解Kafka:架构设计、消息可靠、数据持久、高性能背后的底层原理
【8月更文挑战第15天】在构建高吞吐量和高可靠性的消息系统时,Apache Kafka 成为了众多开发者和企业的首选。其独特的架构设计、消息可靠传输机制、数据持久化策略以及高性能实现方式,使得 Kafka 能够在分布式系统中大放异彩。本文将通过图解的方式,深入解析 Kafka 的这些核心特性,帮助读者更好地理解和应用这一强大的消息中间件。
19 0
|
1月前
|
消息中间件 监控 Java
使用Kafka实现分布式事件驱动架构
使用Kafka实现分布式事件驱动架构
|
1月前
|
存储 缓存 运维
Lustre架构介绍的阅读笔记-HSM
HSM(Hierarchical Storage Management)是数据分级存储管理,根据数据生命周期、访问特性和设备成本,自动在CPU寄存器、缓存、主存、SSD、HDD、光盘、磁带库等不同存储层级间迁移数据。数据热度分为热、温、冷、冰,对应不同成本、性能和容量。迁移策略可基于人工判断或系统自动计算,并确保业务I/O不受影响、数据一致性。访问频率增加时,数据可反向迁移至更高层级。
|
1月前
|
存储 消息中间件 缓存
Lustre架构介绍的阅读笔记-NFS兼容性
Lustre是分布式NFS系统,融合了分布式系统和NFS特性。它支持线性扩展容量和性能,提供POSIX语义,隐藏复杂存储细节。关键技术涉及分布式计算、缓存、锁、事务、通信(RPC、消息队列、同步/异步模式)、选举、任务调度、健康检查、负载均衡、集群管理和QoS。数据一致性、复制(副本、EC)、热点管理及多种上层协议(如NFS、S3)也是重点。分布式存储通过扩容提升读写带宽和IOPS。
|
2月前
|
Java API Android开发
技术经验分享:Android源码笔记——Camera系统架构
技术经验分享:Android源码笔记——Camera系统架构
31 0
|
2月前
|
消息中间件 存储 SQL
RocketMQ与Kafka架构深度对比
RocketMQ与Kafka架构深度对比
|
3月前
|
消息中间件 Kafka Apache
Kafka 架构深入介绍 及搭建Filebeat+Kafka+ELK
Kafka 架构深入介绍 及搭建Filebeat+Kafka+ELK
|
2天前
|
监控 负载均衡 API
从单体到微服务:架构转型之道
【8月更文挑战第17天】从单体架构到微服务架构的转型是一项复杂而系统的工程,需要综合考虑技术、团队、文化等多个方面的因素。通过合理的规划和实施策略,可以克服转型过程中的挑战,实现系统架构的升级和优化。微服务架构以其高度的模块化、可扩展性和灵活性,为业务的持续发展和创新提供了坚实的技术保障。
|
11天前
|
Cloud Native 云计算 微服务
云原生时代:企业分布式应用架构的惊人蜕变,从SOA到微服务的大逃亡!
【8月更文挑战第8天】在云计算与容器技术推动下,企业分布式应用架构正经历从SOA到微服务再到云原生的深刻变革。SOA强调服务重用与组合,通过标准化接口实现服务解耦;微服务以细粒度划分服务,增强系统灵活性;云原生架构借助容器化与自动化技术简化部署与管理。每一步演进都为企业带来新的技术挑战与机遇。
39 6