这篇Kafka笔记真是写的太好了!建议收藏,看完也许你就掌握Kafka了

本文详细介绍了Kafka的用途、拓扑结构、核心组件如broker、topic、partition和offset,以及Kafka的高性能特性,包括顺序写磁盘、Page Cache、零拷贝等。此外,还探讨了Kafka的安装和数据同步机制,如ISR和故障恢复策略,帮助读者全面掌握Kafka。
摘要由CSDN通过智能技术生成

推荐阅读946页“JAVA高级架构必问面试精华”,金九银十社招全拿下

kafka 由 LinkedIn公司推出的一个高吞吐的分布式消息系统,通俗的说就是一个基于发布和订阅的消息队列,官网地址:https://kafka.apache.org/intro

应用场景

  • 异步解构:在上下游没有强依赖的业务关系或针对单次请求不需要立刻处理的业务
  • 系统缓冲:有利于解决服务系统的吞吐量不一致的情况,尤其对处理速度较慢的服务来说起到缓冲作用
  • 消峰作用:对于短时间偶现的极端流量,对后端的服务可以启动保护作用
  • 数据流处理:集成 spark 做实事数据流处理

Kafka 拓扑图(多副本机制)


由上图我们可以发现 Kafka 是分布式,同时对于每一个分区都存在多副本,同时整个集群的管理都通过 zookeeper 管理。

Kafka 核心组件

broker

Kafka 服务器,负责消息存储和转发;一 broker 就代表一个 kafka 节点。一个 broker 可以包含多个 topic

topic

消息类别,Kafka 按照 topic 来分类消息

partition

topic 的分区,一个 topic 可以包含多个 partition,topic 消息保存在各个 partition 上;由于一个 topic 能被分到多个分区上,给 kafka 提供给了并行的处理能力,这也正是 kafka 高吞吐的原因之一。
partition 物理上由多个 segment 文件组成,每个 segment 大小相等,顺序读写(这也是 kafka 比较快的原因之一,不需要随机写)。每个 Segment 数据文件以该段中最小的 offset ,文件扩展名为.log。当查找 offset 的 Message 的时候,通过二分查找快找到 Message 所处于的 Segment 中。

offset

  • 消息在日志中的位置,可以理解是消息在 partition 上的偏移量,也是代表该消息的唯一序号。
  • 同时也是主从之间的需要同步的信息

Producer

生产者,负责向 Kafka Broker 发消息的客户端

Consumer

消息消者,负责消费 Kafka Broker 中的消息

Consumer Group

消费者组,每个 Consumer 必须属于一个 group;(注意的是 一个分区只能由组内一个消费者消费,消费者组之间互不影响。)

Zookeeper

管理 kafka 集群,负责存储了集群 broker、topic、partition 等 meta 数据存储,同时也负责 broker 故障发现,partition leader 选举,负载均衡等功能。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值