Ubuntu 上 Kafka 网络配置实操指南
一 基础网络与主机准备
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
addresses: ["192.168.1.100/24"]
gateway4: "192.168.1.1"
nameservers:
addresses: ["8.8.8.8", "8.8.4.4"]
应用:sudo netplan apply。完成后用 ip a、ping -c 4 8.8.8.8 验证网络连通性。生产环境强烈建议固定 broker.id 与主机名解析。二 Kafka 核心网络参数配置
listeners=PLAINTEXT://0.0.0.0:9092listeners=PLAINTEXT://192.168.1.100:9092advertised.listeners=PLAINTEXT://your-public-ip:9092localhost:2181;集群:zk1:2181,zk2:2181,zk3:2181)broker.id=0
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://your-public-ip:9092
zookeeper.connect=localhost:2181
log.dirs=/var/lib/kafka/logs
listeners 是“服务端监听地址”,advertised.listeners 是“对外公布地址”,两者不一致(如 NAT/云主机 场景)时必须正确设置,否则客户端会连不上。三 防火墙与安全组放通
sudo ufw allow 9092/tcp、sudo ufw allow 2181/tcp,然后 sudo ufw reloadsudo iptables -A INPUT -p tcp --dport 9092 -j ACCEPT;sudo iptables -A INPUT -p tcp --dport 2181 -j ACCEPT;持久化:sudo iptables-save | sudo tee /etc/iptables/rules.v4四 启动顺序与连通性验证
# Zookeeper
/opt/zookeeper/bin/zkServer.sh start
# Kafka
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
netstat -tuln | grep 9092,应看到 0.0.0.0:9092 或配置的 IP:9092# 创建主题
/opt/kafka/bin/kafka-topics.sh --create --topic test-topic \
--bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
# 生产者
/opt/kafka/bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test-topic
# 消费者
/opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 \
--topic test-topic --from-beginning
若客户端在外部网络,请将 --bootstrap-server 指向 advertised.listeners 的地址。五 性能与安全加固建议
* soft nofile 65536、* hard nofile 65536;立即生效:ulimit -n 65536net.core.somaxconn = 1024、net.ipv4.tcp_max_syn_backlog = 8192、net.ipv4.tcp_tw_reuse = 1;生效:sudo sysctl -pnum.network.threads=8-16、socket.send.buffer.bytes=1048576、socket.receive.buffer.bytes=1048576socket.request.max.bytes(如 200MB),并同步评估 Zookeeper 限制