以下是在Linux中搭建Kafka集群的核心步骤(基于Kafka 3.x版本,依赖ZooKeeper):
安装JDK
确保安装Java 1.8+,推荐使用OpenJDK:
# CentOS/RHEL
sudo yum install -y java-1.8.0-openjdk-devel
# Ubuntu/Debian
sudo apt install -y openjdk-8-jdk
java -version # 验证安装
安装ZooKeeper集群
wget https://dlcdn.apache.org/zookeeper/zookeeper-3.8.2/apache-zookeeper-3.8.2-bin.tar.gz
tar -zxvf apache-zookeeper-3.8.2-bin.tar.gz -C /usr/local/
zoo.cfg(需设置dataDir、clientPort及集群节点信息server.x=host:port:port):# 示例(3节点集群)
server.1=zookeeper1:2888:3888
server.2=zookeeper2:2888:3888
server.3=zookeeper3:2888:3888
cd /usr/local/apache-zookeeper-3.8.2-bin/bin
./zkServer.sh start
下载并解压Kafka
wget https://dlcdn.apache.org/kafka/3.5.1/kafka_2.13-3.5.1.tgz
tar -zxvf kafka_2.13-3.5.1.tgz -C /usr/local/
ln -s /usr/local/kafka_2.13-3.5.1 /usr/local/kafka
配置Kafka(关键参数)
编辑config/server.properties(每个节点需唯一配置):
# 节点唯一标识
broker.id=1 # 不同节点依次设置为2、3等
# 监听地址(需替换为实际IP)
listeners=PLAINTEXT://kafka-node1:9092
advertised.listeners=PLAINTEXT://kafka-node1:9092
# ZooKeeper连接
zookeeper.connect=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
# 存储目录
log.dirs=/data/kafka/logs
# 集群参数(高可用)
default.replication.factor=3 # 副本数
min.insync.replicas=2 # 最小同步副本数
创建日志目录并授权
mkdir -p /data/kafka/logs
chown -R kafka:kafka /data/kafka/logs
在每个节点上执行:
cd /usr/local/kafka/bin
./kafka-server-start.sh ../config/server.properties &
查看Broker状态
# 查看所有Broker是否正常注册
./kafka-broker-api-versions.sh --bootstrap-server kafka-node1:9092
创建测试Topic
./kafka-topics.sh --create --topic test-topic --bootstrap-server kafka-node1:9092 --partitions 3 --replication-factor 3
./kafka-topics.sh --describe --topic test-topic --bootstrap-server kafka-node1:9092 # 查看Topic分布
发送/消费消息
# 生产者
./kafka-console-producer.sh --topic test-topic --bootstrap-server kafka-node1:9092
# 消费者
./kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server kafka-node1:9092
kafka-run-class.sh或集成Prometheus+Grafana监控关键指标(如ISR、延迟、吞吐量)。rack.id参数。以上步骤参考自[1,2,3,4,5,6,7,8,9,10,11]。