温馨提示×

ubuntu kafka怎么配置集群

小樊
39
2026-07-18 21:07:10
栏目: 智能运维

下面给你一个在 Ubuntu 上配置 Kafka 集群(多 Broker)的完整示例,适合本地测试或生产环境的基础配置
假设你已经安装好 JavaZookeeper(Kafka 2.8+ 也可以不用 Zookeeper,这里先用传统方式)。


一、环境准备

1️⃣ 机器规划(示例)

节点 IP Broker ID
node1 192.168.1.101 1
node2 192.168.1.102 2
node3 192.168.1.103 3

如果是单机伪集群,可以用不同端口。


2️⃣ 安装 Java

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

二、安装 Kafka(所有节点)

wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -zxvf kafka_2.13-3.6.1.tgz
mv kafka_2.13-3.6.1 /opt/kafka
cd /opt/kafka

三、配置 Zookeeper(集群)

1️⃣ 编辑 config/zookeeper.properties

tickTime=2000
dataDir=/opt/kafka/zookeeper-data
clientPort=2181
initLimit=5
syncLimit=2

server.1=192.168.1.101:2888:3888
server.2=192.168.1.102:2888:3888
server.3=192.168.1.103:2888:3888

2️⃣ 创建 myid(每个节点不同)

mkdir -p /opt/kafka/zookeeper-data

node1

echo 1 > /opt/kafka/zookeeper-data/myid

node2

echo 2 > /opt/kafka/zookeeper-data/myid

node3

echo 3 > /opt/kafka/zookeeper-data/myid

3️⃣ 启动 Zookeeper

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

四、配置 Kafka Broker 集群(重点)

1️⃣ 编辑 config/server.properties

✅ node1 配置

broker.id=1
listeners=PLAINTEXT://192.168.1.101:9092
advertised.listeners=PLAINTEXT://192.168.1.101:9092
log.dirs=/opt/kafka/kafka-logs
zookeeper.connect=192.168.1.101:2181,192.168.1.102:2181,192.168.1.103:2181
num.partitions=3
offsets.topic.replication.factor=3
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=2

✅ node2

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

✅ node3

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

⚠️ broker.id 必须唯一


五、启动 Kafka 集群

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

每个节点都执行。


六、验证集群

1️⃣ 查看 Broker

/opt/kafka/bin/zookeeper-shell.sh 127.0.0.1:2181 ls /brokers/ids

2️⃣ 创建 Topic

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

3️⃣ 查看 Topic

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

七、生产 / 消费测试

生产

/opt/kafka/bin/kafka-console-producer.sh \
--topic test-topic \
--bootstrap-server 192.168.1.101:9092

消费

/opt/kafka/bin/kafka-console-consumer.sh \
--topic test-topic \
--from-beginning \
--bootstrap-server 192.168.1.101:9092

八、常见问题

❌ 1. 无法连接

  • 防火墙
sudo ufw allow 2181
sudo ufw allow 9092

❌ 2. advertised.listeners 配错

一定要用其他机器能访问的 IP


九、KRaft 模式(无 Zookeeper,推荐新版本)

如果你用的是 Kafka 3.x,我可以再给你一份 KRaft 集群配置(更简洁、官方推荐)。


如果你愿意,可以告诉我:

  • ✅ 单机还是多机?
  • ✅ Kafka 版本?
  • ✅ 是否用 KRaft?

我可以直接给你定制配置

0