在Ubuntu上部署Kafka集群需要幾個步驟,包括安裝Java、Zookeeper和Kafka本身,配置相關文件,以及啟動服務。以下是一個基本的指南:
Kafka需要Java環境,首先安裝Java 8或更高版本:
sudo apt update
sudo apt install openjdk-8-jdk
java -version
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
tar xvf zookeeper-3.4.6.tar.gz
sudo mv zookeeper-3.4.6 /usr/local/zookeeper
sudo cat > /usr/local/zookeeper/conf/zoo.cfg << EOF
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
EOF
sudo /usr/local/zookeeper/bin/zkServer.sh start
驗證Zookeeper是否啟動成功:
sudo netstat -nap | grep 2181
wget https://downloads.apache.org/kafka/3.6.2/kafka_2.12-3.6.2.tgz
tar -xzvf kafka_2.12-3.6.2.tgz
sudo mv kafka_2.12-3.6.2 /usr/local/kafka
編輯/usr/local/kafka/config/server.properties
文件,主要修改以下參數:
broker.id
: 每個broker的唯一標識。listeners
: Kafka監聽的地址和端口。log.dirs
: 消息存儲的目錄。zookeeper.connect
: Zookeeper的地址。例如:
broker.id=0
listeners=PLAINTEXT://your_server_ip:9092
log.dirs=/tmp/kafka-logs
zookeeper.connect=your_zookeeper_server:2181
sudo mkdir /tmp/kafka-logs
sudo /usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
驗證Kafka是否啟動成功:
sudo netstat -tulnp | grep 9092
對于多個Broker的集群,需要在每臺服務器上重復上述步驟,確保每臺服務器的broker.id
和listeners
配置不同。
創建一個測試主題并驗證:
sudo /usr/local/kafka/bin/kafka-topics.sh --create --bootstrap-server your_server_ip:9092 --replication-factor 3 --partitions 1 --topic test-topic
列出主題以確認:
sudo /usr/local/kafka/bin/kafka-topics.sh --list --bootstrap-server your_server_ip:9092
生產消息并消費:
sudo /usr/local/kafka/bin/kafka-console-producer.sh --broker-list your_server_ip:9092 --topic test-topic
sudo /usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server your_server_ip:9092 --topic test-topic --from-beginning