以下是在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]。