目录
二、路线 A:Zookeeper + Kafka(3 节点 ZK + 3+ Broker HA 示例)
2.1 Zookeeper 集群安装与配置(每台 ZK 都做)
2.2 Kafka Broker 配置(每个 broker)
2.3 Kafka Systemd 单元(/etc/systemd/system/kafka.service)
三、路线 B:KRaft 模式(推荐:Kafka 3.3+,无需 Zookeeper)

一、通用前置准备(适用于两条路径)
在每台机器上以 root 或 sudo 用户执行以下步骤。
1.系统与用户
# 创建 kafka 用户与目录
sudo useradd -r -s /sbin/nologin kafka || true
sudo mkdir -p /opt/kafka /data/kafka-logs /var/log/kafka
sudo chown -R kafka:kafka /opt/kafka /data/kafka-logs /var/log/kafka
2.安装 Java(OpenJDK 11+ 推荐)
sudo apt update
sudo apt install -y openjdk-11-jdk
java -version
3.网络与系统调优(示例)
# 打开必要端口(示例)
sudo ufw allow 9092/tcp
sudo ufw allow 2181/tcp # ZK
# ulimits
sudo bash -c 'cat >> /etc/security/limits.conf' <<'EOF'
kafka soft nofile 100000
kafka hard nofile 100000
EOF
# sysctl
sudo bash -c 'cat >> /etc/sysctl.conf' <<'EOF'
vm.swappiness=1
fs.file-max=2097152
EOF
sudo sysctl -p
4.下载 Kafka 二进制并解压(示例)
cd /opt
sudo -u kafka wget https://dlcdn.apache.org/kafka/3.6.0/kafka_2.13-3.6.0.tgz
sudo -u kafka tar -zxvf kafka_2.13-3.6.0.tgz
sudo -u kafka ln -s kafka_2.13-3.6.0 kafka
说明:替换版本号为你要使用的稳定版本,KRaft 建议使用 Kafka 3.3+ / 3.6+。(Confluent 文档)
二、路线 A:Zookeeper + Kafka(3 节点 ZK + 3+ Broker HA 示例)
2.1 Zookeeper 集群安装与配置(每台 ZK 都做)
-
编辑
config/zookeeper.properties(示例/opt/kafka/config/zookeeper.properties):
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=zk1.example.com:2888:3888
server.2=zk2.example.com:2888:3888
server.3=zk3.example.com:2888:3888
在每台 ZK 节点 /var/lib/zookeeper/myid 写入 1/2/3 对应节点 id。
-
Systemd 服务文件(
/etc/systemd/system/zookeeper.service):
[Unit]
Description=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
LimitNOFILE=100000
[Install]
WantedBy=multi-user.target
启动并检查:
sudo systemctl daemon-reload
sudo systemctl enable --now zookeeper
sudo systemctl status zookeeper
/opt/kafka/bin/zookeeper-shell.sh zk1.example.com:2181 ls /
说明:生产中 ZK 最少 3 台(奇数),并且不建议与 Kafka Broker 在同一台机器上混合部署。(Confluent 文档)
2.2 Kafka Broker 配置(每个 broker)
编辑 /opt/kafka/config/server.properties 的关键项(例 broker.id=0 对应 kafka1):
broker.id=0 # 每节点唯一
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://kafka1.example.com:9092
log.dirs=/data/kafka-logs
num.network.threads=8
num.io.threads=16
num.partitions=3
default.replication.factor=3
zookeeper.connect=zk1.example.com:2181,zk2.example.com:21

最低0.47元/天 解锁文章
3888

被折叠的 条评论
为什么被折叠?



