以下是 Apache Kafka 3.6.1 的详细安装步骤和配置说明:
1. 环境准备
系统要求
- Java 8 或更高版本(推荐 Java 11/17)
- 至少 4GB 可用内存
- 足够的磁盘空间(根据数据保留策略)
安装 Java
# 检查是否已安装 Java
java -version
# 如果未安装,安装 OpenJDK(以 Ubuntu 为例)
sudo apt update
sudo apt install openjdk-11-jdk
2. 下载 Kafka
# 进入安装目录
cd /opt
# 下载 Kafka 3.6.1
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
# 创建软链接(可选)
ln -s kafka_2.13-3.6.1 kafka
# 设置环境变量
echo 'export KAFKA_HOME=/opt/kafka' >> ~/.bashrc
echo 'export PATH=$PATH:$KAFKA_HOME/bin' >> ~/.bashrc
source ~/.bashrc
3. 配置 ZooKeeper(内置)
Kafka 3.6.1 包含内置的 ZooKeeper,推荐用于开发和测试环境。
配置 ZooKeeper
编辑 $KAFKA_HOME/config/zookeeper.properties:
# zookeeper.properties
dataDir=/tmp/zookeeper
clientPort=2181
maxClientCnxns=100
admin.enableServer=false
# 集群配置(如果是多节点)
# server.1=host1:2888:3888
# server.2=host2:2888:3888
# server.3=host3:2888:3888
4. 配置 Kafka Broker
编辑 $KAFKA_HOME/config/server.properties:
# server.properties 基础配置
broker.id=0
listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://localhost:9092
num.network.threads=3
num.io.threads=8
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
# 日志存储配置
log.dirs=/tmp/kafka-logs
num.partitions=1
num.recovery.threads.per.data.dir=1
# 数据保留策略
log.retention.hours=168
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
# ZooKeeper 配置
zookeeper.connect=localhost:2181
zookeeper.connection.timeout.ms=18000
# 安全配置(可选)
# security.inter.broker.protocol=PLAINTEXT
# sasl.enabled.mechanisms=PLAIN
# sasl.mechanism.inter.broker.protocol=PLAIN
# 监控配置
metric.reporters=io.confluent.metrics.reporter.ConfluentMetricsReporter
confluent.metrics.reporter.bootstrap.servers=localhost:9092
confluent.metrics.reporter.topic.replicas=1
5. 启动服务
启动 ZooKeeper
# 后台启动
$KAFKA_HOME/bin/zookeeper-server-start.sh -daemon $KAFKA_HOME/config/zookeeper.properties
# 或前台启动(用于调试)
$KAFKA_HOME/bin/zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties
启动 Kafka Broker
# 后台启动
$KAFKA_HOME/bin/kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties
# 或前台启动
$KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties
6. 验证安装
创建测试主题
$KAFKA_HOME/bin/kafka-topics.sh --create \
--bootstrap-server localhost:9092 \
--replication-factor 1 \
--partitions 1 \
--topic test-topic
查看主题列表
$KAFKA_HOME/bin/kafka-topics.sh --list \
--bootstrap-server localhost:9092
生产消息
$KAFKA_HOME/bin/kafka-console-producer.sh \
--bootstrap-server localhost:9092 \
--topic test-topic
消费消息(新终端)
$KAFKA_HOME/bin/kafka-console-consumer.sh \
--bootstrap-server localhost:9092 \
--topic test-topic \
--from-beginning
7. 生产环境配置建议
高级配置
# 网络配置
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://your-server-ip:9092
# 复制和可靠性
default.replication.factor=3
min.insync.replicas=2
unclean.leader.election.enable=false
# 性能调优
num.partitions=3
message.max.bytes=10485760
replica.fetch.max.bytes=10485760
# 监控和 JMX
jmx.port=9999
kafka.metrics.polling.interval.secs=10
kafka.metrics.reporters=io.confluent.metrics.reporter.ConfluentMetricsReporter
8. 系统服务配置(Systemd)
创建 systemd 服务文件:
ZooKeeper 服务
sudo nano /etc/systemd/system/zookeeper.service
[Unit]
Description=Apache ZooKeeper
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
[Install]
WantedBy=multi-user.target
Kafka 服务
sudo nano /etc/systemd/system/kafka.service
[Unit]
Description=Apache Kafka
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
[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload
sudo systemctl enable zookeeper kafka
sudo systemctl start zookeeper kafka
9. 安全注意事项
- 防火墙配置:确保 2181(ZooKeeper)和 9092(Kafka)端口安全
- 用户权限:创建专用用户运行 Kafka
- SSL/TLS:生产环境启用加密通信
- 认证授权:配置 SASL 或 mTLS 认证
10. 故障排查
查看日志文件:
# Kafka 日志
tail -f /tmp/kafka-logs/server.log
# ZooKeeper 日志
tail -f /tmp/zookeeper/zookeeper.out
检查进程状态:
jps -l | grep -E '(Kafka|QuorumPeerMain)'
这个安装指南涵盖了 Kafka 3.6.1 的基本安装和配置。根据你的具体需求,可能还需要调整内存设置、磁盘配置和网络参数。
作者:严锋 创建时间:2025-10-14 08:43
最后编辑:严锋 更新时间:2025-11-04 14:01
最后编辑:严锋 更新时间:2025-11-04 14:01