温馨提示×

debian kafka如何集群配置

小樊
48
2026-09-16 01:00:45
栏目: 智能运维

下面以 Debian / Ubuntu 系统为例,说明 Kafka 集群(多 Broker) 的基本配置步骤。假设使用 Kafka 3.x + Kafka 自带 Zookeeper(也可使用 KRaft,但新手建议先 Zookeeper 模式)。


一、环境准备

1. 服务器规划(示例)

假设 3 台 Debian 机器:

主机名 IP Broker ID
kafka1 192.168.1.11 1
kafka2 192.168.1.12 2
kafka3 192.168.1.13 3

Kafka 依赖 Java,先安装:

sudo apt update
sudo apt install -y openjdk-17-jdk
java -version

二、安装 Kafka(每台机器)

cd /opt
sudo wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz
sudo tar -xzf kafka_2.13-3.7.0.tgz
sudo mv kafka_2.13-3.7.0 kafka

三、配置 Zookeeper(集群)

Kafka 集群依赖 Zookeeper(除非用 KRaft)

1. 修改 zookeeper.properties

sudo vim /opt/kafka/config/zookeeper.properties

内容示例(三台相同):

dataDir=/opt/kafka/zookeeper
clientPort=2181
maxClientCnxns=0

server.1=192.168.1.11:2888:3888
server.2=192.168.1.12:2888:3888
server.3=192.168.1.13:2888:3888

2. 创建 myid 文件(每台不同)

# kafka1
echo 1 | sudo tee /opt/kafka/zookeeper/myid

# kafka2
echo 2 | sudo tee /opt/kafka/zookeeper/myid

# kafka3
echo 3 | sudo tee /opt/kafka/zookeeper/myid

四、配置 Kafka Broker(核心)

编辑:

sudo vim /opt/kafka/config/server.properties

公共配置(每台改 broker.id 和 listeners)

kafka1

broker.id=1
listeners=PLAINTEXT://192.168.1.11:9092
advertised.listeners=PLAINTEXT://192.168.1.11:9092

zookeeper.connect=192.168.1.11:2181,192.168.1.12:2181,192.168.1.13:2181

log.dirs=/opt/kafka/logs
num.partitions=3
default.replication.factor=3
min.insync.replicas=2

kafka2

broker.id=2
listeners=PLAINTEXT://192.168.1.12:9092
advertised.listeners=PLAINTEXT://192.168.1.12:9092

kafka3

broker.id=3
listeners=PLAINTEXT://192.168.1.13:9092
advertised.listeners=PLAINTEXT://192.168.1.13:9092

五、启动集群

1. 启动 Zookeeper(每台)

/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties

2. 启动 Kafka(每台)

/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties

查看日志:

tail -f /opt/kafka/logs/server.log

六、验证集群

1. 创建 Topic

/opt/kafka/bin/kafka-topics.sh \
--create \
--topic test \
--partitions 3 \
--replication-factor 3 \
--bootstrap-server 192.168.1.11:9092

2. 查看 Topic 状态

/opt/kafka/bin/kafka-topics.sh \
--describe \
--topic test \
--bootstrap-server 192.168.1.11:9092

看到 Leader / Replicas / Isr 有多台即成功。


七、生产 / 消费测试

# 生产
kafka-console-producer.sh --topic test --bootstrap-server 192.168.1.11:9092

# 消费
kafka-console-consumer.sh --topic test --from-beginning --bootstrap-server 192.168.1.12:9092

八、可选优化(生产环境)

  • 使用 systemd 管理 Kafka/Zookeeper
  • 开启 SASL / SSL
  • 使用 KRaft 模式(Kafka 4.0 推荐)
  • 监控:Kafka Exporter + Prometheus + Grafana

如果你需要:

  • ✅ Debian systemd 配置
  • ✅ KRaft 模式(无 Zookeeper)
  • ✅ Docker / K8s 部署

可以直接告诉我你的使用场景。

0 踩