在 CentOS 上选择 Kafka 版本的核心原则
- 优先选择仍在官方支持期的最新稳定版;如强调长期稳定与维护窗口,可选LTS版本。
- 结合操作系统版本与Java兼容性:CentOS 7 上建议 Java 11+;CentOS 8/Stream 可用 Java 11/17。
- 明确部署模式:若希望去 ZooKeeper,选择 Kafka 3.4+ KRaft 模式;若已有 ZK 集群,3.x 亦可继续沿用。
- 关注生态与驱动兼容性(客户端库、连接器、监控/运维工具),避免跨大版本消息格式/协议不兼容。
- 同一集群内保持版本一致,避免混用不同小版本。
按 CentOS 版本与场景的推荐
| 场景 |
首选 Kafka 版本 |
说明 |
| CentOS 7 新部署 |
3.9.x(Scala 2.13) |
仍在支持期,生态完善;建议配 Java 11+。 |
| CentOS 7 存量/兼容性优先 |
3.3.2(Scala 2.13) |
3.3 的最后一个补丁版,稳定性好;仍用 Java 11+ 更稳。 |
| CentOS 8/Stream 新部署 |
3.9.x(Scala 2.13) |
与系统较新,建议 Java 11/17;可直接用 KRaft。 |
| 必须使用 ZK 的老环境 |
3.3.x 或 2.8.x |
3.3.x 仍支持 ZK;2.8.x 为早期过渡版本,建议仅短中期过渡。 |
| 仅做功能验证/学习 |
3.3.2(单机三 Broker) |
便于快速跑通;注意单机多副本不等于高可用。 |
说明:Kafka 3.x 引入并强化了 KRaft(减少依赖),3.3.2 是 3.3 线的最后一个补丁版,适合 CentOS 7 上的稳定落地;若追求最新特性与更长支持,优先 3.9.x。
版本命名与下载校验要点
- 发行包命名格式:kafka_{scala.version}-{kafka.version}.tgz,如 kafka_2.13-3.9.0.tgz;Scala 版本通常选 2.13(生态更轻量)。
- 下载后务必进行SHA-512 校验:
- 下载同名 .sha512 文件;
- 执行:
sha512sum -c kafka_2.13-3.9.0.tgz.sha512,输出 OK 再解压安装。
- 若选用已归档的旧版本(如 3.3.x),可在官网页面底部的 Archived releases 获取。
Java 与部署模式匹配建议
- Java 8:可用于部分旧版本(如 2.7.x 等),但新版本更推荐 Java 11+;在 CentOS 7 上建议直接上 Java 11 或 Java 17。
- KRaft vs ZK:
- 新环境优先 KRaft(Kafka 3.4+ 功能更完整);
- 老环境可继续 ZK 模式,但需评估后续迁移路径。
- 安全与网络:生产建议启用 SASL/SSL,并开放 9092/2181 等端口,配合防火墙与 systemd 管理。
快速决策清单
- 运行环境为 CentOS 7 且追求稳定:选 3.3.2(2.13);若需新特性与更长支持:选 3.9.x(2.13)。
- 运行环境为 CentOS 8/Stream:选 3.9.x(2.13),配 Java 11/17,优先 KRaft。
- 必须使用 ZooKeeper:选 3.3.x 或 2.8.x;规划后续迁移至 KRaft。
- 仅做验证/学习:3.3.2 单机三 Broker 快速跑通,切勿当作生产高可用。