11-Kafka

1 Kafka

  • Kafka是一个分布式流式数据平台,它具有三个关键特性

    • Message System: Pub-Sub消息系统
    • Availability & Reliability:以容错及持久化的方式存储数据记录流
    • Scalable & Real time
1.1 Kafka架构体系
  • Kafka系统中存在5个关键组件
    • Producer
    • Consume
    • Kafka Cluster
      • Broker:Kafka Server,或Kafka Node
      • Zookeeper: 集群状态存储
    • Connector:连接应用程序和Topic
    • Stream Processor:流处理器,从一个Topic接收并处理流式数据,并将结果存入另一个Topic
  • 还有两个重要逻辑组件
    • Topic
    • Partition
1.2 Topic和Partition
  • 关于Topic和Partition

    • Topic分类的消息流,相关的消息保存于Partition中

      • 一个Topic中的数据,可以分布保存于一至多个Partition中
      • 每个Partition中,通常存在一个leader,以及一至多个replicas/followers
    • Topic是Producer发布消息,以及consumer消费消息使用的端点

1.3 Topic中的消息记录
  • 消息及存储方式
    • Kafka中,每个消息记录(record)的标准格式通常由key、value、timestamp和一些metadata组成;
    • 待存入Topic的消息记录未明确指定目标Partition时,Kafka会根据记录的key的hash码选择一个Partition;未明确指定timestamp时,Producer将会使用当前时间(创建时间或附加到日志的时间)作为其时间戳;
    • Kafka将数据持久存储在log.dir参数指定 的目录中,而各topic会映射进该目录的子目录中;
      • Kafka会保留所有记录,无论它们是否已被消费
      • 记录在broker配置中定义的retention period内保留,默认时长为7天(168小时)
    • Kafka基于Pub/Sub和Queue模型构建Topic,它使用消费者组(Consumer Group)的概念将处理任务划分为一组消费者进程并行运行,并且可以将消息广播到多个组中;
1.4 Partition
  • Partition代表Topic中的数据分片,在其它数据库系统中,通常称为replica或shard

    • 每个Partition都是一个按时间排序的不可变记录序列,该序列存储于日志中;
    • 消费者按照记录在日志中的存储顺序读取消息;
    • 每个消息都有一个称为offset的id
  • 能够将一个Topic中的数据并行存储于多个broker上;

  • 支持以冗余机制(复制因子大于1)存储多个副本,并能容忍最多N-1个服务器故障,N为复制

    因子数量;

  • 消费者读取一个Topic时,它将从所有Partition中读取数据

相关推荐
阿里云云原生11 小时前
2026云栖大会定档!
云原生
人间凡尔赛12 小时前
eBPF + WebAssembly 正在重写服务网格数据平面:2026 云原生架构的“去 Sidecar“革命
后端·云原生·架构
云烟成雨TD13 小时前
Micrometer 系列【33】Spring Boot Micrometer Metrics 自动配置模块解析
spring boot·云原生·micrometer
SLD_Allen16 小时前
Kubernetes + Ray + Volcano:云原生AI训练调度体系
人工智能·云原生·kubernetes
A-刘晨阳17 小时前
Kubernetes 非共享存储详解:emptyDir 与 hostPath 从入门到实践
运维·云原生·容器·kubernetes·hostpath·emptydir
风曦Kisaki17 小时前
# Kubernetes(K8s)笔记Day15:K8s网络工作原理【Pod 网络模型,CNI 网络插件,Calico 工作模式详解,BGP协议,路由反射器】
运维·网络·nginx·云原生·容器·kubernetes
明王明王18 小时前
从零搭建一个单节点 K8S 可观测实验室(七):从一次 Pod 创建过程,看懂 Kubernetes 核心原理
云原生·容器·kubernetes
云川之下1 天前
【k8s】NAD(NetworkAttachmentDefinition)与SR‑IOV‑Operator 关系
云原生·容器·kubernetes
潘正翔1 天前
k8s进阶_Configmap配置文件访问
运维·服务器·docker·云原生·容器·kubernetes
ZzzZZzzzZZZzzzz…2 天前
K8S实战:NFS+StorageClass+PV/PVC+Deployment
运维·云原生·容器·kubernetes·storageclass·linux运维·持久卷