在家办公期间整理的 Kafka 核心知识主要集中在架构原理、消息可靠性、高性能设计及应用场景等方面。关键要点包括理解 Broker、Topic、Partition 等核心概念,掌握生产者发送机制与消费者组平衡策略,以及 ISR 副本同步原理。快速掌握的关键在于结合官方文档与实战案例,重点攻克消息不丢失、不重复消费及顺序消息等难点,同时通过搭建集群熟悉配置调优,深入理解 Zookeeper 在早期版本中的协调作用及新版本的变化,从而构建完整的知识体系。
在家办公这些天整理的 Kafka 知识点大全
Kafka 概述 Kakfa 是一个分布式的基于发布/订阅模式的消息队列 (Message Queue),主要应用于大数据的实时处理领域。消息队列 传统消息队列与新式消息队列模式如下图:上面是传统的消息队列,比如一个用户要注册信息,当用户信息写入数据库后,后面还有一些其他流程,比如发送短信,则需要等这些流程处理完成后,再返回给用户。而新式队列,比如一个用户注册信息,数据直接丢进数据库,就直接返回给用户成功。使用消息队列的好处如下:解耦 可恢复性 缓冲 灵活性与峰值处理能力 异步通信 消息队列的模式如下:点对点模式:消息生产者发送消息到消息队列中,然后消息消费者从队列中取出并且消费消息,消息被消费后,队列中不在存储。所以消息消费者不可能消费到已经被消费的消息;队列支持存在多个消费者,但是对于一个消息而言,只会有一个消费者可以消费;如果想发给多个消费者,则需要多次发送该条消息。发布/订阅模式 (一对多,消费者消费数据之后不会清除消息):消息生产者将消息发布到 Topic 中,同时有多个消息消费者 (订阅) 消费该消息。和点对点的方式不同,发布到 Topic 的消息会被所有的订阅者消费;但是数据保留是有期限的,默认是 7 天,因为它不是存储系统。Kafka 就是这种模式的。
【万字长文】Kafka 最全知识点整理 (建议收藏)
1、kafka 是什么,有什么作用 2、Kafka 为什么这么快 3、Kafka 架构及名词解释 4、Kafka 中的 AR、ISR、OSR 代表什么 5、HW、LEO 代表什么 6、ISR 收缩性 7、kafka follower 如何与 leader 同步数据 8、Zookeeper 在 Kafka 中的作用 (早期) 9、Kafka 如何快速读取指定 offset 的消息 10、生产者发送消息有哪些模式 11、发送消息的分区策略有哪些 12、Kafka 可靠性保证 (不丢消息) 13、Kafka 是怎么去实现负载均衡的 14、简述 Kafka 的 Rebalance 机制 15、Kafka 负载均衡会导致什么问题 16、如何增强消费者的消费能力 17、消费者与 Topic 的分区策略 18、如何保证消息不被重复消费 (消费者幂等性) 19、为什么 Kafka 不支持读写分离 20、Kafka 选举机制 21、脑裂问题 22、如何为 Kafka 集群选择合适的 Topics/Partitions 数量 23、Kafka 分区数可以增加或减少吗?为什么 24、谈谈你对 Kafka 生产者幂等性的了解 25、谈谈你对 Kafka 事务的了解?26、Kafka 消息是采用 Pull 模式,还是 Push 模式?27、Kafka 缺点 28、Kafka 什么时候会丢数据 29、Kafka 分区数越多越好吗?30、Kafka 如何保证消息的有序性 31、Kafka 精确一次性 (Exactly-once) 如何保证 1、kafka 是什么,有什么作用
阿里资深架构师仅用 8 个知识点带你参透 Kafka!
Kafka 的基本介绍 Kafka 是最初由 Linkedin 公司开发,是一个分布式、分区的、多副本的、多订阅者,基于 zookeeper 协调的分布式日志系统 (也可以当做 MQ 系统),常见可以用于 web/nginx 日志、访问日志,消息服务等等,Linkedin 于 2010 年贡献给了 Apache 基金会并成为顶级开源项目,Java 核心学习笔记分享。主要应用场景是:日志收集系统和消息系统。Kafka 主要设计目标如下:以时间复杂度为 O(1) 的方式提供消息持久化能力,即使对 TB 级以上数据也能保证常数时间的访问性能。高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒 100K 条消息的传输。支持 Kafka Server 间的消息分区,及分布式消费,同时保证每个 partition 内的消息顺序传输。同时支持离线数据处理和实时数据处理。Kafka 的设计原理分析 一个典型的 kafka 集群中包含若干 producer,若干 broker,若干 consumer,以及一个 Zookeeper 集群。Kafka 通过 Zookeeper 管理集群配置,选举 leader,以及在 consumer group 发生变化时进行 rebalance。producer 使用 push 模式将消息发布到 broker,consumer 使用 pull 模式从 broker 订阅并消费消息。
如何快速全面掌握 Kafka?5000 字吐血整理
1. Kafka 快速入门 Kafka 是一个分布式消息引擎与流处理平台,经常用做企业的消息总线、实时数据管道,有的还把它当做存储系统来使用。早期 Kafka 的定位是一个高吞吐的分布式消息系统,目前则演变成了一个成熟的分布式消息引擎,以及流处理平台。Kafka 体系架构 Kafka 的设计遵循生产者消费者模式,生产者发送消息到 broker 中某一个 topic 的具体分区里,消费者从一个或多个分区中拉取数据进行消费。拓扑图如下:目前,Kafka 依靠 Zookeeper 做分布式协调服务,负责存储和管理 Kafka 集群中的元数据信息,包括集群中的 broker 信息、topic 信息、topic 的分区与副本信息等。1.2 Kafka 术语 这里整理了 Kafka 的一些关键术语:Producer:生产者,消息产生和发送端。Broker:Kafka 实例,多个 broker 组成一个 Kafka 集群,通常一台机器部署一个 Kafka 实例,一个实例挂了不影响其他实例。Consumer:消费者,拉取消息进行消费。一个 topic 可以让若干个消费者进行消费,若干个消费者组成一个 Consumer Group 即消费组,一条消息只能被消费组中一个 Consumer 消费。Topic:主题,服务端消息的逻辑存储单元。
高可用高性能核心原理探究,Kafka 核心全面总结
在探究 Kafka 核心知识之前,我们先思考一个问题:什么场景会促使我们使用 Kafka? 说到这里,我们头脑中或多或少会蹦出异步解耦和削峰填谷等字样,是的,这就是 Kafka 最重要的落地场景。异步解耦:同步调用转换成异步消息通知,实现生产者和消费者的解耦。想象一个场景,在商品交易时,在订单创建完成之后,需要触发一系列其他的操作,比如进行用户订单数据的统计、给用户发送短信、给用户发送邮件等等。如果所有操作都采用同步方式实现,将严重影响系统性能。针对此场景,我们可以利用消息中间件解耦订单创建操作和其他后续行为。削峰填谷:利用 broker 缓冲上游生产者瞬时突发的流量,使消费者消费流量整体平滑。对于发送能力很强的上游系统,如果没有消息中间件的保护,下游系统可能会直接被压垮导致全链路服务雪崩。想象秒杀业务场景,上游业务发起下单请求,下游业务执行秒杀业务 (库存检查,库存冻结,余额冻结,生成订单等等),下游业务处理的逻辑是相当复杂的,并发能力有限,如果上游服务不做限流策略,瞬时可能把下游服务压垮。针对此场景,我们可以利用 MQ 来做削峰填谷,让高峰流量填充低谷空闲资源,达到系统资源的合理利用。
FAQ
Kafka 为什么这么快?
顺序写磁盘、零拷贝技术、分页缓存、批量发送。
如何保证消息不丢失?
生产者 ACK 全确认、副本同步、消费者手动提交 offset。
Kafka 适合什么场景?
日志收集、消息队列、流处理平台。
Consumer Group 是什么?
逻辑订阅者,组内消费者分担分区消费,组间独立。