Apache Kafka单节点极速部署指南:10分钟搭建开发单节点环境

server/2025/3/5 8:17:47/

Apache Kafka单节点极速部署指南:10分钟搭建开发单节点环境

Kafka简介:

Apache Kafka是由LinkedIn开发并捐赠给Apache基金会的分布式流处理平台,现已成为实时数据管道和流应用领域的行业标准。它基于高吞吐、低延迟的设计理念,能够轻松处理每秒百万级消息传输,具备水平扩展、数据持久化、高容错等核心特性。Kafka广泛应用于日志聚合、实时监控、事件溯源、消息队列等场景,是大数据生态中连接传统数据库与流处理引擎(如Flink、Spark)的关键组件,被腾讯云、Netflix、Uber等顶级互联网企业深度应用于核心业务系统。

文章目录

    • **Apache Kafka单节点极速部署指南:10分钟搭建开发单节点环境**
      • Kafka简介:
      • **一、环境准备与安装**
        • 1. 安装 Java(详细步骤)
        • 2. 下载并解压 Kafka
      • **二、配置文件详解**
        • 1. ZooKeeper 配置
        • 2. Kafka Broker 配置
      • **三、配置为系统服务(Systemd)**
        • 1. 创建 `ZooKeeper` 服务文件
        • 2. 创建 Kafka 服务文件
        • 3. 创建专用用户和目录(增强安全性)
        • 4. 修改配置文件中的持久化路径
        • 5. 启用服务
      • **四、验证服务*
        • 1. 功能测试(详细命令)
      • **五、关键配置项深度解析**
      • **六、故障排查指南**
        • 1. 查看服务日志
        • 2. 端口占用检查
        • 3. 文件权限修复

一、环境准备与安装

1. 安装 Java(详细步骤)
# CentOS
sudo yum install -y java-1.8.0-openjdk-devel# Ubuntu
sudo apt update && sudo apt install -y openjdk-8-jdk# 验证安装
java -version  # 应输出类似 "openjdk version 1.8.0_382"

img_v3_02k2_52113089-36a0-4f01-8a1b-34fc2e5e655g

img_v3_02k2_dcc5330b-b557-4edc-900c-807ccc54997g

2. 下载并解压 Kafka
wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -xzf kafka_2.13-3.6.1.tgz
mv kafka_2.13-3.6.1 /opt/kafka  # 建议移动到标准化目录
cd /opt/kafka

如果服务器网络不佳可在Kafka官网手动下载并上传至服务器:

下载地址:Apache Kafka

image-20250304153350958

img_v3_02k2_e958fbda-bb64-45b6-9426-c4d51ac9056g

img_v3_02k2_7e453cb2-d663-4812-8411-440231dfab7g


二、配置文件详解

1. ZooKeeper 配置

config/zookeeper.properties

# 数据存储目录(重要:生产环境需改为持久化路径,如 /var/lib/zookeeper)
dataDir=/tmp/zookeeper# 客户端连接端口
clientPort=2181# 最大客户端连接数(0 表示无限制)
maxClientCnxns=0# 集群配置(单节点无需配置)
# server.1=zk-node1:2888:3888
# server.2=zk-node2:2888:3888

image-20250304151028285

2. Kafka Broker 配置

config/server.properties

# Broker 的唯一标识(集群中每个节点必须不同)
broker.id=0# 监听地址和协议(生产环境建议用具体IP,如 PLAINTEXT://192.168.1.100:9092)
listeners=PLAINTEXT://:9092# Kafka 日志存储目录(生产环境需改为持久化路径,如 /var/lib/kafka-logs)
log.dirs=/tmp/kafka-logs# 每个 Topic 的默认分区数(影响并行度)
num.partitions=1# ZooKeeper 连接地址(集群用逗号分隔,如 zk1:2181,zk2:2181)
zookeeper.connect=localhost:2181# 其他重要参数(可选)
# 日志保留时间(小时)
log.retention.hours=168
# 单个日志文件最大大小(字节)
log.segment.bytes=1073741824
# 网络线程数
num.network.threads=3
# IO 线程数
num.io.threads=8

image-20250304151400265


三、配置为系统服务(Systemd)

1. 创建 ZooKeeper 服务文件
sudo vim /etc/systemd/system/zookeeper.service

内容如下:

[Unit]
Description=Apache ZooKeeper Service
After=network.target[Service]
Type=simple
User=kafka  # 建议创建专用用户(见下方说明)
Group=kafka
ExecStart=/opt/kafka/bin/zookeeper-server-start.sh /opt/kafka/config/zookeeper.properties
ExecStop=/opt/kafka/bin/zookeeper-server-stop.sh
Restart=on-failure
RestartSec=10s[Install]
WantedBy=multi-user.target
2. 创建 Kafka 服务文件
sudo vim /etc/systemd/system/kafka.service

内容如下:

[Unit]
Description=Apache Kafka Service
After=zookeeper.service[Service]
Type=simple
User=kafka
Group=kafka
ExecStart=/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
ExecStop=/opt/kafka/bin/kafka-server-stop.sh
Restart=on-failure
RestartSec=10s[Install]
WantedBy=multi-user.target
3. 创建专用用户和目录(增强安全性)
sudo useradd -r -s /bin/false kafka
sudo mkdir -p /var/lib/{zookeeper,kafka-logs}
sudo chown -R kafka:kafka /var/lib/{zookeeper,kafka-logs} /opt/kafka
4. 修改配置文件中的持久化路径
  • 修改 zookeeper.properties

    dataDir=/var/lib/zookeeper
    
  • 修改 server.properties

    log.dirs=/var/lib/kafka-logs
    
5. 启用服务
sudo systemctl daemon-reload
sudo systemctl enable --now zookeeper
sudo systemctl enable --now kafka# 检查状态
sudo systemctl status zookeeper kafka

img_v3_02k2_6bdc2a6f-4766-4b1b-986b-21fdbda0eeeg


*四、验证服务

1. 功能测试(详细命令)
# 创建 Topic(明确指定分区和副本)
/opt/kafka/bin/kafka-topics.sh --create \--topic test-topic \--bootstrap-server localhost:9092 \--partitions 3 \--replication-factor 1# 生产消息(输入多行消息后按 Ctrl+C 退出)
/opt/kafka/bin/kafka-console-producer.sh \--topic test-topic \--bootstrap-server localhost:9092# 消费消息(新终端执行)
/opt/kafka/bin/kafka-console-consumer.sh \--topic test-topic \--bootstrap-server localhost:9092 \--from-beginning

测试效果如图:img_v3_02k2_2622cef6-4d6d-49d5-9789-f49dc8bee5eg

img_v3_02k2_f20fc217-645c-4c9e-ba17-7e7956bc14ag

img_v3_02k2_59014a5c-8571-4b5d-8063-76a6f0f60e8g


五、关键配置项深度解析

配置项作用说明生产环境建议值
broker.idBroker 的唯一标识,集群中必须唯一数字递增(0,1,2…)
listenersBroker 监听的网络地址和协议使用服务器内网IP,如 PLAINTEXT://192.168.1.100:9092
log.dirsKafka 数据存储目录,多个目录用逗号分隔可提升性能挂载独立磁盘,如 /data/kafka-logs
zookeeper.connectZooKeeper 集群地址,格式为 host1:port1,host2:port2至少3节点集群
num.partitions新建 Topic 的默认分区数(影响并行处理能力)根据业务需求设置(通常3-10)
log.retention.hours消息保留时间按业务需求(如 168=7天)
default.replication.factor新建 Topic 的默认副本数(高可用关键)至少2,集群节点数≥副本数

六、故障排查指南

1. 查看服务日志
# ZooKeeper 日志
journalctl -u zookeeper -f# Kafka 日志
journalctl -u kafka -f
2. 端口占用检查
sudo netstat -tlnp | grep -E '2181|9092'
3. 文件权限修复
sudo chown -R kafka:kafka /var/lib/{zookeeper,kafka-logs}

http://www.ppmy.cn/server/172551.html

相关文章

uploadlabs经验总结

目录 一、基础上传漏洞(太过简单目前环境不可能存在) 1、抓包然后改后缀进行绕过 2、抓包然后改上传文件类型进行绕过 3、改后缀大小写绕过,以及收尾加空格,加::$DATA,加点等等 4、黑名单不完整绕过,复习后缀绕过&…

【网络安全】——二进制协议 vs 文本协议:从原理到实战的深度解析

目录 引言 一、协议的本质与分类 二、二进制协议详解 1. 核心特点 2. 典型结构示例 3. 常见应用场景 4. 详细介绍 三、文本协议详解 1. 核心特点 2. 典型结构示例 3. 常见应用场景 4.详细介绍 四、关键对比:二进制协议 vs 文本协议 五、实战案例&…

05 HarmonyOS NEXT高效编程秘籍:Arkts函数调用与声明优化深度解析

温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦! 目录 概述函数调用优化声明参数要和实际的参数一致反例正例 函数内部变量尽量使用参数传递反例正例 函数与类声明优化避免动态声明function与class…

费曼物理学讲义-对世界的认知以及方法

《费曼物理学讲义》(The Feynman Lectures on Physics)是理查德费曼(Richard Feynman)在加州理工学院为本科生讲授物理学的经典课程整理而成的著作。这套讲义以深刻的物理直觉、生动的语言和独特的视角著称,至今仍是物…

nginx 503错误分析

常见原因 后端服务宕机或未启动 • Nginx 作为反向代理时,若后端应用服务器(如 Tomcat、Node.js、PHP-FPM 等)未运行或崩溃,会导致 503。 • 排查方法:检查后端服务状态、日志及端口监听情况(如 netstat -t…

【江科协-STM32】1. GPIO

GPIO简介 GPIO(General Purpose Input/Output)通用输入输出口 可配置为8种输入输出模式。引脚电平0-3.3V,部分引脚可容忍5V,输出模式下可控制端口输出高低电平,用来驱动LED、控制蜂鸣器、模拟通信协议输出时序等。 输入模式下可读取端口的…

aiohttp、httpx 和 requests 的区别

先说结论,没有意外就用httpx,因为最牛的的openai接口用httpx,和FastAPI无缝兼容。 - httpx 是一个现代化的 HTTP 客户端,支持同步和异步操作 - 完全支持 async/await 语法 - API 设计更简洁,更接近 requests 的使用方…

2025 电商新航道:AI 多模态交互领航,元宇宙商品展示赋能

随着科技的飞速发展,电子商务行业正迈入一个全新的时代。2025年,AI多模态交互技术和元宇宙商品展示技术将成为电商领域的新航道,引领行业向更加智能化、沉浸化的方向发展。本文将深入探讨这两项技术的内涵、应用及其对电商行业未来的深远影响…