<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kafka 消息队列专题 on PlumePHP</title><link>https://plumephp.com/posts/kafka/</link><description>Recent content in Kafka 消息队列专题 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Tue, 29 Sep 2026 14:00:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/posts/kafka/index.xml" rel="self" type="application/rss+xml"/><item><title>Kafka 配额与限流治理：多租户隔离、客户端限额与背压</title><link>https://plumephp.com/kafka-quotas-throttling/</link><pubDate>Tue, 29 Sep 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-quotas-throttling/</guid><description>&lt;p&gt;Kafka 集群一旦被「某个重度客户端吃光资源」，所有人都得跟着遭殃。**配额（Quota）**是 broker 内建的限流闸门：按客户端维度限制吞吐与请求率，让集群在共享下依然公平。本文讲清配额的原理、配置、实施机制与多租户实践。&lt;/p&gt;</description></item><item><title>Kafka Producer 深入：批量、压缩与吞吐延迟权衡</title><link>https://plumephp.com/kafka-producer-batching-tuning/</link><pubDate>Tue, 29 Sep 2026 13:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-producer-batching-tuning/</guid><description>&lt;p&gt;Producer 的吞吐瓶颈往往不在 broker，而在&lt;strong&gt;客户端自己&lt;/strong&gt;——批量太小、压缩没开、acks 选错，都会让写入效率断崖。本文深入 Producer 的发送管线：批量怎么组、压缩怎么选、延迟与吞吐怎么权衡，以及错误与幂等怎么兜底。&lt;/p&gt;</description></item><item><title>Kafka Broker 网络线程模型：请求处理、零拷贝与背压</title><link>https://plumephp.com/kafka-network-thread-model/</link><pubDate>Tue, 29 Sep 2026 12:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-network-thread-model/</guid><description>&lt;p&gt;同一个 broker 同时服务上千连接与数万请求，Kafka 靠的不是「一个请求一个线程」，而是一套&lt;strong&gt;事件驱动的线程模型&lt;/strong&gt;。理解这套模型，才能回答「为什么连接多就卡」「为什么读请求那么快」「队列参数怎么调」这三个经典问题。&lt;/p&gt;</description></item><item><title>Kafka 副本机制与控制器深入：ISR、Leader 选举与分区迁移</title><link>https://plumephp.com/kafka-replication-controller-internals/</link><pubDate>Tue, 29 Sep 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-replication-controller-internals/</guid><description>&lt;p&gt;Kafka 的可靠性建立在「多副本」之上，但副本不是简单复制——&lt;strong&gt;ISR、HW、Leader 选举、控制器&lt;/strong&gt;这些机制决定了数据一致性边界。本文深入副本与控制器：它们怎么协作、故障时怎么决策、以及数据到底会不会丢。&lt;/p&gt;</description></item><item><title>Kafka 存储内核：日志段、留存策略与日志压缩</title><link>https://plumephp.com/kafka-storage-log-compaction/</link><pubDate>Tue, 29 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-storage-log-compaction/</guid><description>&lt;p&gt;Kafka 的「日志」不是打印的日志，而是&lt;strong&gt;追加式写的分片文件&lt;/strong&gt;——它是 Kafka 高性能的物理基础，也是磁盘消耗与维护的源头。本文深入存储层：日志段怎么组织、留存怎么回收、Compact 主题怎么压缩，以及磁盘问题怎么排查。&lt;/p&gt;</description></item><item><title>Kafka 消费组与再平衡深入：协议演进、分配策略与稳定性调优</title><link>https://plumephp.com/kafka-consumer-group-rebalance/</link><pubDate>Tue, 29 Sep 2026 09:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-consumer-group-rebalance/</guid><description>&lt;p&gt;「又再平衡了」是 Kafka 消费者最大的痛点：一触发，整个消费组秒级停顿，吞吐断崖。本文不讲消费组怎么用，而是深入&lt;strong&gt;再平衡的协议与机制&lt;/strong&gt;——为什么会发生、如何发生的、怎样让它少发生，以及发生了如何快速恢复。&lt;/p&gt;</description></item><item><title>Kafka 投递语义与可靠性模式：重试、幂等消费与死信队列</title><link>https://plumephp.com/kafka-delivery-semantics/</link><pubDate>Sun, 27 Sep 2026 15:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-delivery-semantics/</guid><description>&lt;p&gt;Kafka 的持久化与 ACK 机制解决了「消息不丢」，但&lt;strong&gt;重复是常态&lt;/strong&gt;：生产端重试可能多写、消费端崩溃重启可能多读、事务回滚可能重放。可靠性工程的核心不是「消灭重复」，而是&lt;strong&gt;让重复无害化&lt;/strong&gt;。本文系统讲解&lt;strong&gt;三种投递语义&lt;/strong&gt;、&lt;strong&gt;重试与指数退避&lt;/strong&gt;、&lt;strong&gt;幂等消费的去重手段&lt;/strong&gt;，以及&lt;strong&gt;死信队列（DLQ）&lt;/strong&gt; 这一最后防线的设计与治理。&lt;/p&gt;</description></item><item><title>Kafka 性能调优与容量规划：从生产者到 Broker 的全链路压测指南</title><link>https://plumephp.com/kafka-performance-tuning/</link><pubDate>Sun, 27 Sep 2026 14:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-performance-tuning/</guid><description>&lt;p&gt;Kafka 的&lt;strong&gt;默认配置&lt;/strong&gt;目标是「安全稳妥」，离「跑满硬件」还有很大距离。同样是 3 节点集群，调优前后的吞吐可以相差&lt;strong&gt;一个数量级&lt;/strong&gt;。但调优不是乱拧参数——它受&lt;strong&gt;吞吐、延迟、持久化&lt;/strong&gt;三者的权衡支配，且瓶颈通常不在 CPU 而在&lt;strong&gt;磁盘与网络&lt;/strong&gt;。本文从&lt;strong&gt;性能模型&lt;/strong&gt;出发，逐层讲透&lt;strong&gt;生产者、消费者、Broker&lt;/strong&gt;三端的调优参数，并给出&lt;strong&gt;容量估算公式&lt;/strong&gt;与&lt;strong&gt;官方压测工具&lt;/strong&gt;的实战用法。&lt;/p&gt;</description></item><item><title>Kafka 跨集群复制与容灾：MirrorMaker 2 实战与故障切换</title><link>https://plumephp.com/kafka-mirror-maker/</link><pubDate>Sun, 27 Sep 2026 13:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-mirror-maker/</guid><description>&lt;p&gt;单集群的 Kubernetes 集群高可用解决的是「节点故障」；&lt;strong&gt;地域级故障（机房宕机、可用区失联）只能靠多集群&lt;/strong&gt;。Kafka 的 &lt;strong&gt;MirrorMaker 2（MM2）&lt;/strong&gt; 是官方跨集群复制方案：把一个集群的 Topic 消息&lt;strong&gt;实时镜像&lt;/strong&gt;到另一个集群，并&lt;strong&gt;同步消费偏移量&lt;/strong&gt;，让你在故障时能快速切换消费位置。本文讲透 MM2 的&lt;strong&gt;工作原理、复制拓扑、偏移量同步&lt;/strong&gt;，并给出&lt;strong&gt;容灾切换演练&lt;/strong&gt;的完整流程。&lt;/p&gt;</description></item><item><title>KRaft 架构深度：Kafka 无 ZooKeeper 化与平滑迁移实战</title><link>https://plumephp.com/kafka-kraft/</link><pubDate>Sun, 27 Sep 2026 12:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-kraft/</guid><description>&lt;p&gt;从 2009 年诞生到 2021 年，Kafka 的元数据一直由 &lt;strong&gt;ZooKeeper&lt;/strong&gt; 管理。但 ZooKeeper 本身就是一个要单独运维的分布式系统——它成了 Kafka 高可用链条上&lt;strong&gt;最脆、也最难扩的一环&lt;/strong&gt;。&lt;strong&gt;KRaft（Kafka Raft）&lt;/strong&gt; 自 Kafka 3.3 起成为生产可用选项，把元数据管理&lt;strong&gt;内嵌进 Kafka 自身&lt;/strong&gt;，用 Raft 共识协议实现控制器自协调。本文讲透 KRaft 的&lt;strong&gt;设计原理&lt;/strong&gt;、&lt;strong&gt;对比 ZooKeeper 的取舍&lt;/strong&gt;，并给出&lt;strong&gt;从 ZooKeeper 平滑迁移到 KRaft&lt;/strong&gt; 的完整实战路径。&lt;/p&gt;</description></item><item><title>Kafka Schema Registry：消息契约管理与 Schema 演进实战</title><link>https://plumephp.com/kafka-schema-registry/</link><pubDate>Sun, 27 Sep 2026 11:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-schema-registry/</guid><description>&lt;p&gt;Kafka 只把消息当「字节数组」存储——&lt;strong&gt;它不关心你的消息长什么样&lt;/strong&gt;。于是灾难悄然发生：生产者升级了字段，老消费者反序列化直接崩溃；不同团队对同一事件的字段命名各执一词；一条消息的「约定」只能靠口口相传。&lt;strong&gt;Schema Registry&lt;/strong&gt; 就是来解决「消息契约」问题的：它集中管理 Topic 的 Schema 版本、强制兼容性检查、让生产与消费两端「签同一份合同」。本文讲透&lt;strong&gt;序列化选型、兼容性级别、演进策略&lt;/strong&gt;与&lt;strong&gt;多环境治理&lt;/strong&gt;。&lt;/p&gt;</description></item><item><title>Kafka 事务与 Exactly-Once 语义：从幂等生产者到端到端精确一次</title><link>https://plumephp.com/kafka-transactions/</link><pubDate>Sun, 27 Sep 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-transactions/</guid><description>&lt;p&gt;在分布式消息系统中，&lt;strong&gt;「至少一次（at-least-once）」是默认语义&lt;/strong&gt;：生产者重试会导致重复消息，消费者崩溃重启会导致重复消费。大多数场景下靠幂等消费兜底即可。但订单支付、账户转账这类&lt;strong&gt;强一致业务&lt;/strong&gt;，需要真正的 &lt;strong&gt;Exactly-Once（精确一次）&lt;/strong&gt;。Kafka 从 0.11 起引入事务机制，让「多分区原子写入」「消费-处理-产出原子化」成为可能。本文从&lt;strong&gt;幂等生产者&lt;/strong&gt;讲起，深入&lt;strong&gt;事务协调器与两阶段提交&lt;/strong&gt;，再到 &lt;strong&gt;read-process-write&lt;/strong&gt; 端到端模式与 &lt;strong&gt;Outbox 集成&lt;/strong&gt;，帮你判断何时用、怎么用、代价是什么。&lt;/p&gt;</description></item><item><title>Go + Kafka 客户端实战：Sarama、Segmentio 与 Consumer Group</title><link>https://plumephp.com/kafka-go-client/</link><pubDate>Mon, 17 Aug 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-go-client/</guid><description>&lt;p&gt;&lt;a href="https://plumephp.com/posts/golang/"&gt;Go&lt;/a&gt; 语言凭借原生并发模型和轻量协程调度，是处理高吞吐消息流的理想选择。Kafka 生态中有两个主流 Go 客户端：IBM 维护的 &lt;code&gt;sarama&lt;/code&gt; 功能全面、兼容性好；Segment 出品的 &lt;code&gt;kafka-go&lt;/code&gt; API 简洁、依赖轻量。本文深入对比两库用法，从基础 Producer 和 Consumer 到 Consumer Group、手动提交、事务生产者，再到微服务集成，帮你做出正确选择。&lt;/p&gt;</description></item><item><title>Kafka Connect 与 CDC 集成实战：Debezium、Schema Registry 与数据同步</title><link>https://plumephp.com/kafka-connect-integration/</link><pubDate>Mon, 17 Aug 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-connect-integration/</guid><description>&lt;p&gt;在现代数据架构中，将外部系统的数据实时导入 Kafka 并将 Kafka 数据输出到下游系统，是构建数据管道最常见的需求。Kafka Connect 作为 Kafka 生态中的核心集成框架，提供了免代码的方式来连接数百种外部系统。而 Debezium 作为 CDC（Change Data Capture）领域的标杆工具，能够实时捕获数据库的增量变更，与 Kafka Connect 结合后形成了一套完整的数据同步解决方案。本文将从 Kafka Connect 架构出发，深入讲解 Source/Sink Connector 的原理与应用场景，重点剖析 Debezium CDC 在 &lt;a href="https://plumephp.com/posts/postgresql/"&gt;PostgreSQL&lt;/a&gt;、&lt;a href="https://plumephp.com/posts/database/"&gt;MySQL&lt;/a&gt;、&lt;a href="https://plumephp.com/posts/mongodb/"&gt;MongoDB&lt;/a&gt; 上的变更捕获机制，以及 Confluent Schema Registry 在数据格式治理中的核心作用。最后通过一个完整的 Debezium + Avro + Schema Registry 配置实战，展示从零搭建生产级数据采集链路的完整过程。&lt;/p&gt;</description></item><item><title>Kafka Streams 与 KSQL 流处理实战：窗口、Join 与状态存储</title><link>https://plumephp.com/kafka-streams-processing/</link><pubDate>Mon, 17 Aug 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-streams-processing/</guid><description>&lt;p&gt;在数据驱动的时代，企业对实时数据处理的需求日益增长。从金融风控到电商实时推荐，从 IoT 设备监控到日志实时分析，流处理已成为现代数据架构的核心能力。Apache Kafka 作为分布式消息系统的标杆，其生态中的 Kafka Streams 和 KSQL（现称为 &lt;a href="https://plumephp.com/posts/data-engineering/"&gt;Flink&lt;/a&gt; SQL on Kafka）提供了强大的流处理能力。本文将深入探讨 Kafka Streams 的架构原理、核心 API、窗口与 Join 机制、状态存储，以及 KSQL 的声明式查询能力，并通过一个完整的实时订单统计实战案例，帮助读者掌握流处理的核心技术。&lt;/p&gt;</description></item><item><title>Kafka vs RabbitMQ vs Redis Streams：消息队列选型完全指南</title><link>https://plumephp.com/kafka-vs-rabbitmq-vs-redis-streams/</link><pubDate>Mon, 17 Aug 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-vs-rabbitmq-vs-redis-streams/</guid><description>&lt;p&gt;现代分布式系统几乎离不开消息队列。面对 Kafka、RabbitMQ 和 &lt;a href="https://plumephp.com/posts/redis/"&gt;Redis&lt;/a&gt; Streams 三大主流方案，很多团队在技术选型时犹豫不决。本文从设计哲学、12 维度对比、性能基准与场景决策树四个层面，提供一份可直接落地的选型指南。&lt;/p&gt;</description></item><item><title>Kafka 安全指南：SASL、SSL 与 ACL</title><link>https://plumephp.com/kafka-security/</link><pubDate>Mon, 17 Aug 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-security/</guid><description>&lt;p&gt;Apache Kafka 的默认安装配置以开箱即用和高性能为首要目标，安全机制在初始状态下是关闭的。这意味着任何人只要能访问 Kafka 的监听端口，就可以创建 Topic、发送消息、消费任意数据。在早期阶段的测试环境或内网隔离场景中，这种设计可以接受；但在生产环境中，数据涉及商业机密、用户隐私或金融交易时，无防护的 Kafka 集群等同于将核心数据资产暴露给所有内部人员甚至外部攻击者。&lt;/p&gt;
&lt;p&gt;Kafka 的安全体系围绕三个核心维度构建：认证（Authentication），确认&amp;quot;你是谁&amp;quot;；加密（Encryption），确保&amp;quot;传输不会被窃听&amp;quot;；授权（Authorization），决定&amp;quot;你能做什么&amp;quot;。这三个维度分别对应 SASL 认证协议、SSL/&lt;a href="https://plumephp.com/posts/security/"&gt;TLS&lt;/a&gt; 传输层加密和 ACL 访问控制列表。本文将系统性地拆解 Kafka 安全加固的完整路径，从安全架构设计到各种 SASL 机制的对比选择，从 SSL 证书链的配置实战到 ACL 规则矩阵的管理，再结合数据脱敏策略，为生产级 Kafka 集群构建纵深防御体系。&lt;/p&gt;</description></item><item><title>Kafka 生产者与消费者实战：批量发送、ACK 策略与 Consumer Group</title><link>https://plumephp.com/kafka-producer-consumer/</link><pubDate>Mon, 17 Aug 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-producer-consumer/</guid><description>&lt;p&gt;Kafka 作为分布式流处理平台的核心组件，其生产者（Producer）与消费者（Consumer）的设计与实现直接影响着整个系统的吞吐量、可靠性和延迟表现。无论是构建实时日志采集管道，还是搭建高并发的消息中台，深入理解 Kafka 客户端的工作机制都是每一位开发者的必修课。本文将从配置参数、发送策略、消费模型到消费者组（Consumer Group）的复杂交互，逐一拆解 Kafka 客户端编程的完整知识体系，涵盖批量发送优化、ACK 策略选择、幂等性保证、事务语义实现以及位移提交策略等关键议题，并附带 &lt;a href="https://plumephp.com/posts/java/"&gt;Java&lt;/a&gt; 与 &lt;a href="https://plumephp.com/posts/golang/"&gt;Go&lt;/a&gt; 的完整实战代码，帮助你从理论到实践全面掌握 Kafka 客户端编程。&lt;/p&gt;</description></item><item><title>Kafka 详解：分布式日志系统、ISR 与一致性保证</title><link>https://plumephp.com/kafka-intro/</link><pubDate>Mon, 17 Aug 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-intro/</guid><description>&lt;p&gt;为什么 Kafka 成了现代分布式系统的&amp;quot;默认选择&amp;quot;？它在传出一条条消息的同时，也在传递一个远比消息队列更底层的理念：日志（Log）才是系统状态的&amp;quot;唯一真相&amp;quot;。Kafka 被设计成分布式提交日志（distributed commit log），它把每一条消息当成一条不可变的日志记录追加到磁盘的持久化序列中。理解这一点，才能理解 Kafka 的高吞吐、高容错和高一致性从何而来。&lt;/p&gt;</description></item><item><title>Kafka 运维监控与故障恢复：JMX 指标、Lag 监控与分区重分配</title><link>https://plumephp.com/kafka-monitoring-operations/</link><pubDate>Mon, 17 Aug 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/kafka-monitoring-operations/</guid><description>&lt;p&gt;Kafka 生产集群的稳定运行离不开完善的监控体系与规范的运维流程。一个未经监控的 Kafka 集群如同在黑暗中驾驶，分区复制延迟、消费者堆积、Broker 状态异常等问题随时可能引发服务故障。本篇文章系统地梳理了 Kafka 运维的核心维度，涵盖 JMX 关键指标解读、Consumer Lag 实时监控、分区重分配操作、Broker 扩缩容、数据恢复策略以及 &lt;a href="https://plumephp.com/posts/observability/"&gt;Prometheus&lt;/a&gt; + &lt;a href="https://plumephp.com/posts/observability/"&gt;Grafana&lt;/a&gt; 监控方案，帮助运维人员建立可观测、可预警、可恢复的生产级 Kafka 运维体系。&lt;/p&gt;</description></item><item><title>事件驱动架构：Event Sourcing、CQRS 与 Saga 模式</title><link>https://plumephp.com/event-driven-architecture/</link><pubDate>Mon, 17 Aug 2026 10:00:00 +0800</pubDate><guid>https://plumephp.com/event-driven-architecture/</guid><description>&lt;h2 id="一事件驱动架构概述"&gt;一、事件驱动架构概述&lt;/h2&gt;
&lt;p&gt;事件驱动架构（Event-Driven Architecture，EDA）是一种围绕「事件」构建软件系统的架构风格。在 EDA 中，系统的各个组件通过异步事件消息进行通信，而非直接调用彼此的 API。这种解耦带来了弹性、可扩展性和可观测性的显著提升，但也引入了最终一致性、事件顺序和幂等性等新的挑战。&lt;/p&gt;</description></item><item><title>08. Java Spring Kafka 实战</title><link>https://plumephp.com/kafka-spring-boot/</link><pubDate>Fri, 14 Aug 2026 18:08:00 +0800</pubDate><guid>https://plumephp.com/kafka-spring-boot/</guid><description>&lt;p&gt;Spring Kafka 是 Spring 生态中连接 Kafka 的核心组件，它以声明式的方式将消息生产者和消费者融入 Spring Boot 应用。从简单的消息收发，到事务性消息处理、消费重试、死信队列，Spring Kafka 提供了全方位的企业级能力。本文覆盖 Spring Kafka 的核心配置、生产消费模型、错误处理、并发消费和事务支持，同时深入探讨生产者进阶用法、消费者组再平衡机制、Exactly-Once 语义实现、Kafka Streams 集成、监控运维以及 Schema Registry 等高级主题。&lt;/p&gt;</description></item><item><title>07. Kafka Streams 流处理</title><link>https://plumephp.com/kafka-streams/</link><pubDate>Fri, 14 Aug 2026 18:07:00 +0800</pubDate><guid>https://plumephp.com/kafka-streams/</guid><description>&lt;p&gt;Kafka Streams 是一个轻量级的流处理库，与 Kafka 深度集成，无需部署独立的流处理集群。与 &lt;a href="https://plumephp.com/posts/data-engineering/"&gt;Flink&lt;/a&gt; 或 &lt;a href="https://plumephp.com/posts/data-engineering/"&gt;Spark&lt;/a&gt; Streaming 相比，Kafka Streams 的优势在于低延迟、无额外基础设施、以及与 Kafka 生态的无缝集成。它通过 KStream 和 KTable 两个核心抽象，将事件流（Event Stream）和状态表（Changelog Stream）统一为处理模型。&lt;/p&gt;</description></item><item><title>06. Kafka Connect 数据集成</title><link>https://plumephp.com/kafka-connect/</link><pubDate>Fri, 14 Aug 2026 18:06:00 +0800</pubDate><guid>https://plumephp.com/kafka-connect/</guid><description>&lt;h2 id="1-kafka-connect-概述"&gt;1. Kafka Connect 概述&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Kafka Connect&lt;/strong&gt; 是 Kafka 官方提供的数据集成框架，用于在 Kafka 与外部系统（数据库、文件、对象存储、搜索引擎等）之间建立可靠的数据管道。它通过插件化的 &lt;strong&gt;Connector&lt;/strong&gt; 机制，无需编写代码即可实现数据导入导出。&lt;/p&gt;</description></item><item><title>05. Kafka 集群与高可用架构</title><link>https://plumephp.com/kafka-cluster-ha/</link><pubDate>Fri, 14 Aug 2026 18:05:00 +0800</pubDate><guid>https://plumephp.com/kafka-cluster-ha/</guid><description>&lt;h2 id="1-kafka-集群核心组件"&gt;1. Kafka 集群核心组件&lt;/h2&gt;
&lt;h3 id="11-架构演进zookeeper--kraft"&gt;1.1 架构演进：ZooKeeper → KRaft&lt;/h3&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Kafka &amp;lt; 3.0（依赖 ZooKeeper）：

 ZooKeeper Ensemble (3/5 节点)
 ├── 存储元数据（Broker、Topic、Partition）
 ├── 管理 Controller 选举
 └── 维护 ISR 列表

Kafka ≥ 3.3（KRaft 模式，推荐）：

 无 ZooKeeper
 ├── Controller 节点（Quorum，3/5 节点）
 │ ├── 自管理元数据
 │ ├── 使用 Raft 协议选举
 │ └── 存储在内部 topic (__cluster_metadata)
 └── Broker 节点（纯数据节点）
 └── 更轻量，专注于消息存储
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;KRaft 消除了 ZooKeeper 运维负担，简化了部署，同时减少了元数据传播延迟。从 ZooKeeper 向 KRaft 迁移时，需要经历一个元数据同步阶段：Broker 先以 KRaft 模式启动新的 Controller 集群，逐步将 ZooKeeper 中的 Topic 元数据、ACL、配置等信息复制到内部的 &lt;code&gt;__cluster_metadata&lt;/code&gt; 分区中。官方提供了 &lt;code&gt;kafka-storage.sh&lt;/code&gt; 工具完成元数据初始化。迁移完成后，所有 Broker 会向新的 Controller Quorum 注册，ZooKeeper 方可下线。生产环境中建议先在测试集群验证完整迁移流程，并保留 ZooKeeper 一段时间作为回退方案。&lt;/p&gt;</description></item><item><title>04. Topic 设计与分区策略</title><link>https://plumephp.com/kafka-topic-design/</link><pubDate>Fri, 14 Aug 2026 18:04:00 +0800</pubDate><guid>https://plumephp.com/kafka-topic-design/</guid><description>&lt;h2 id="1-topic-核心概念"&gt;1. Topic 核心概念&lt;/h2&gt;
&lt;h3 id="11-topic-是什么"&gt;1.1 Topic 是什么&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Topic&lt;/strong&gt; 是 Kafka 中消息的逻辑分类。Producer 将消息发送到特定 Topic，Consumer 订阅 Topic 获取消息。Topic 本身不存储数据，真正的数据存储在 Topic 的**分区（Partition）**中。&lt;/p&gt;</description></item><item><title>03. Kafka 消费者组与偏移量管理</title><link>https://plumephp.com/kafka-consumer/</link><pubDate>Fri, 14 Aug 2026 18:03:00 +0800</pubDate><guid>https://plumephp.com/kafka-consumer/</guid><description>&lt;p&gt;Kafka 消费者是整个流处理链路的终点，也是大多数系统故障暴露的位置。消费者组（Consumer Group）的 Rebalance 机制、偏移量的提交策略、以及 Exactly-Once 消费的实现，是生产环境中最需要精细调优的部分。&lt;/p&gt;</description></item><item><title>02. Kafka 生产者 API 与发送语义</title><link>https://plumephp.com/kafka-producer/</link><pubDate>Fri, 14 Aug 2026 18:02:00 +0800</pubDate><guid>https://plumephp.com/kafka-producer/</guid><description>&lt;p&gt;Kafka 生产者是整个数据流的入口，其发送语义直接影响到数据的一致性和系统的可靠性。Kafka 提供了从&amp;quot;最多一次&amp;quot;到&amp;quot;恰好一次&amp;quot;的完整消息保证等级，理解这些机制需要深入到 ACK 策略、幂等性实现和事务模型的底层原理。&lt;/p&gt;</description></item><item><title>01. Kafka 核心概念与架构</title><link>https://plumephp.com/kafka-introduction/</link><pubDate>Fri, 14 Aug 2026 18:01:00 +0800</pubDate><guid>https://plumephp.com/kafka-introduction/</guid><description>&lt;p&gt;Kafka 最初由 LinkedIn 开发，后捐献给 Apache 基金会，已成为现代分布式系统中事实标准的流处理平台。它不仅仅是一个消息队列，更是一个分布式日志系统——核心理念是将所有数据流视为不可变的顺序日志（Log）。理解这一设计哲学，是掌握 Kafka 高吞吐、高容错和高一致性能力的起点。&lt;/p&gt;</description></item></channel></rss>