Apache Kafka 4.3.1 介绍与选型指南

Apache Kafka 4.3.1 的 KRaft 架构、主题分区模型、官方快速上手命令,及 Pulsar、Redpanda、RocketMQ 同类选型对比。

Apache KafkaKafkaApache消息队列流处理大数据2026/10/18

Apache Kafka 4.3.1 介绍与选型指南

目标:讲清 Apache Kafka 是什么、解决什么问题、由哪些组件构成、如何按官方 Quick Start 跑通第一个事件流,以及在当前版本 4.3.1 下的同类消息与流处理平台选型对比。本文为 A1 认知篇:全部内容基于 Apache Kafka 官方网站(kafka.apache.org)与官方 GitHub 仓库联网查证编写,关键论断随文标注来源,查询日期统一为 2026-10-18,不含本地安装实测。

一、信息基准

1.1 版本与许可信息

项目内容
查询日期2026-10-18
本次介绍版本4.3.1
版本依据官方下载页 kafka.apache.org/downloads「Supported releases」首列 4.3.1(Released June 25, 2026),二进制包 kafka_2.13-4.3.1.tgz;同页列出的受支持版本还有 4.2.2 与 4.1.2
发布节奏官方下载页明示「The project goal is to have 3 releases a year」(目标每年 3 个版本,约每 4 个月一个),缺陷修复仅面向受支持版本发布
许可证Apache License 2.0(GitHub 仓库 license 信息:Apache-2.0)
运行环境官方 Quick Start 明示本地环境需 Java 17+;官方 README:项目以 Java 17 与 25 构建测试,clients 模块编译基线为 Java 11;4.0 升级说明新增 Java 23 支持

1.2 官方来源清单

来源地址用途
官方主页https://kafka.apache.org/项目门户
下载页https://kafka.apache.org/downloads(重定向至 community/downloads/)受支持版本清单、发布节奏说明
Quick Starthttps://kafka.apache.org/quickstart官方最小上手路径
文档https://kafka.apache.org/documentation核心概念与配置参考
GitHub 仓库https://github.com/apache/kafka源码、README
4.0 升级说明https://kafka.apache.org/documentation/#upgrade(对应 4.0.0 发布说明)Java 门槛与重大变更

二、软件概述

Apache Kafka 4.3.1 是 Apache 软件基金会旗下的分布式事件流平台(distributed event streaming platform),官方 Quick Start 将其定义为"可以让用户在多台机器之间读、写、存储与处理事件(events,文档中亦称 records 或 messages)"的平台(来源:官方 Quick Start,2026-10-18 查询)。事件按主题(topic)组织与存储,生产者客户端通过网络把事件写入 broker,broker 以持久、容错的方式按需保存事件,消费者客户端按订阅关系读取事件。

Kafka 于 4.x 时代完成了架构上的关键收敛:官方 Quick Start 的启动流程仅包含「生成集群 UUID → kafka-storage.sh format --standalone 格式化存储 → kafka-server-start.sh 启动」三步,全程不涉及 ZooKeeper,集群元数据由内置的 KRaft 共识协议管理;同时 4.0 发布说明把最低 Java 门槛提升至 Java 17 并新增 Java 23 支持。4.3.1 是当前官方受支持版本清单中的最新版本(2026-06-25 发布),官网同时保留 4.2.2、4.1.2 两条维护线。

三、核心架构与核心概念

3.1 事件、主题与分区

官方 Quick Start 的描述与示例输出给出了平台的基本模型:

  • 事件(event):一次支付交易、一个地理位置更新、一张发货单等,皆可建模为事件;事件按键值组织,长期存储于主题中。
  • 主题(topic):事件的逻辑归类,类比文件系统中的文件夹;官方示例以 kafka-topics.sh --create 创建主题 quickstart-events。
  • 分区与副本:kafka-topics.sh --describe 的官方输出展示 PartitionCount、ReplicationFactor、Leader、Replicas、Isr 等字段,说明主题在物理上按分区切分、每个分区带副本并维护同步副本集合(ISR),这是水平扩展与容错的基础。

3.2 Broker 与 KRaft 模式

  • broker:服务端进程,接收生产者写入并持久化事件,向消费者提供读取。
  • KRaft:Kafka 内置的 Raft 共识协议,负责集群元数据管理。官方 Quick Start 中 kafka-storage.sh random-uuid 生成集群 UUID、kafka-storage.sh format --standalone -t $KAFKA_CLUSTER_ID -c config/server.properties 完成存储格式化,整条启动路径不含 ZooKeeper 组件,体现 4.x 的单进程自管理模式(来源:官方 Quick Start,2026-10-18 查询)。

3.3 生产者与消费者

  • 生产者(producer):官方示例 kafka-console-producer.sh,默认一行输入即一条事件写入主题。
  • 消费者(consumer):官方示例 kafka-console-consumer.sh,从主题读取事件;消费位点由消费组模型管理,支持多消费组独立消费同一主题。

3.4 客户端生态

Kafka 官方提供多语言客户端与两大数据处理框架:Kafka Streams(流处理)与 Kafka Connect(数据管道连接器),以及 kafka-cli 系列命令行工具。README 还说明客户端模块的编译基线为 Java 11,便于嵌入较广的应用环境(来源:官方 README,2026-10-18 查询)。

四、功能特性

4.1 高吞吐持久化事件流

事件写入即持久化,broker 以顺序写与分区并行支撑高吞吐;事件可按需长期保留(官方 Quick Start 表述"as long as you need—even forever")。

4.2 KRaft 单进程运行

4.x 官方快速开始仅依赖 config/server.properties 即可拉起含元数据管理的完整服务,--standalone 模式面向单节点场景,降低部署与运维心智负担(来源:官方 Quick Start)。

4.3 可扩展的流处理与连接生态

Kafka Streams 提供在客户端库内完成流式计算的能力;Kafka Connect 提供与外部系统的标准化连接器框架;二者均随主发行版一起发布。

4.4 丰富的命令行运维工具

kafka-topics.sh、kafka-console-producer.sh、kafka-console-consumer.sh、kafka-storage.sh 等脚本覆盖主题管理、数据进出与存储格式化;官方 Quick Start 指出所有命令行工具不带参数运行即可显示用法。

4.5 版本与支持策略

官网明确目标为每年 3 个版本、仅对受支持版本做缺陷修复;截至查询日受支持版本为 4.3.1、4.2.2、4.1.2,历史版本归档在同一页面(来源:官方下载页,2026-10-18 查询)。

五、快速上手

以下命令逐条引自官方 Quick Start(来源:https://kafka.apache.org/quickstart ,2026-10-18 查询,版本以 4.3.1 为例;官方同页还提供基于 GraalVM 的 Native 发行与拉取 apache/kafka 官方发行物的方式,此处按本站规范仅收录发行包路径)。

5.1 获取并解压

$ tar -xzf kafka_2.13-4.3.1.tgz
$ cd kafka_2.13-4.3.1

官方提示:本地环境必须安装 Java 17+。

5.2 启动 Kafka 环境(KRaft)

# 生成集群 UUID
$ KAFKA_CLUSTER_ID="$(bin/kafka-storage.sh random-uuid)"

# 格式化存储目录
$ bin/kafka-storage.sh format --standalone -t $KAFKA_CLUSTER_ID -c config/server.properties

# 启动 Kafka 服务
$ bin/kafka-server-start.sh config/server.properties

5.3 创建主题并读写事件

# 创建主题
$ bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092

# 查看主题详情
$ bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092

# 写入事件(默认每行一条)
$ bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092
>This is my first event
>This is my second event

# 读取事件(--from-beginning 表示从头消费)
$ bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092

六、适用场景与限制

6.1 适用场景

  • 事件驱动架构与系统解耦:多生产者向主题写入、多消费组独立订阅,天然适配微服务间异步消息。
  • 数据管道:配合 Kafka Connect 把数据库变更、日志等接入分析/存储系统。
  • 实时流处理:Kafka Streams 在客户端侧完成窗口聚合、连接等计算,无需独立计算集群。
  • 事件溯源与回放:事件按保留策略持久化,消费位点可重置,支持历史回放。

6.2 限制与注意

  • 运行基线较高:官方 Quick Start 要求 Java 17+,4.0 起不支持更老 JDK,老旧环境需先升级运行时。
  • 精确一次语义依赖配置:幂等生产者、事务与 read_committed 消费需显式开启,跨分区事务的吞吐成本需评估。
  • 弹性能力按分区扩展:主题分区数确定后,键到分区的映射随之固定,分区规划需要在容量设计阶段完成。
  • 多租户与队列语义较弱:Kafka 以日志模型为主,若需要每条消息独立确认/删除的队列语义,需评估 4.x 引入的队列相关能力或改用其他消息系统。

七、同类选型对比

对比对象选取当前主流的三类消息/流平台:Apache Pulsar、Redpanda 与 Apache RocketMQ。下表数据均为 2026-10-18 联网实查:stars 与许可见各项目官方 GitHub 仓库页面,版本取自各仓库 releases/latest 重定向。

维度Apache Kafka 4.3.1Apache PulsarRedpandaApache RocketMQ
开源许可Apache-2.0Apache-2.0BSL 1.1(Business Source License,2023 年起,非 OSI 认证开源)Apache-2.0
GitHub stars约 34,036约 15,348约 12,620约 22,642
最新版本4.3.1(2026-06-25,官方下载页)v5.0.0(GitHub releases/latest)v26.2.2(GitHub releases/latest)rocketmq-all-5.5.1(GitHub releases/latest)
版本节奏官方目标每年 3 个版本,仅维护受支持版本官方未公布固定节奏官方未公布固定节奏官方未公布固定节奏
兼容矩阵官方 Quick Start 要求 Java 17+;clients 编译基线 Java 11官方未在本次查询中公布统一门槛自带发行物,兼容 Kafka API 的定位由官方声明官方未在本次查询中公布统一门槛
架构差异要点KRaft 元数据自管理,存储与计算同进程存算分离,BookKeeper 层负责存储单二进制、Kafka API 兼容为卖点NameServer + Broker 主从架构,事务/定时消息见长

选型建议:以成熟生态、社区规模与官方支持节奏为先,Kafka 仍是事件流平台的默认答案;需要存算分离与跨机房地理复制优先考虑 Pulsar,追求 Kafka API 兼容与更低运维成本且接受 BSL 许可可选 Redpanda,强事务消息与电商类场景可评估 RocketMQ。

八、参考链接

编号链接说明
1https://kafka.apache.org/Apache Kafka 官方主页
2https://kafka.apache.org/quickstart官方 Quick Start
3https://kafka.apache.org/downloads官方下载页(受支持版本清单)
4https://kafka.apache.org/documentation官方文档(核心概念与升级说明)
5https://github.com/apache/kafka官方 GitHub 仓库(README 含构建与 Java 说明)
6https://kafka.apache.org/documentation/#upgrade版本升级说明入口
7https://github.com/apache/pulsar/releasesPulsar 版本记录(对比数据源)
8https://github.com/redpanda-data/redpanda/releasesRedpanda 版本记录(对比数据源)
9https://github.com/apache/rocketmq/releasesRocketMQ 版本记录(对比数据源)