在Ubuntu上部署Kafka高可用集群需要遵循以下步驟:
安裝Java:Kafka需要Java環境,確保已安裝OpenJDK或Oracle JDK。
sudo apt update
sudo apt install openjdk-11-jdk
下載Kafka:從Apache Kafka官網下載最新版本的Kafka。
wget https://downloads.apache.org/kafka/3.2.0/kafka_2.13-3.2.0.tgz
tar -xzf kafka_2.13-3.2.0.tgz
cd kafka_2.13-3.2.0
Kafka依賴Zookeeper進行集群管理。
啟動Zookeeper:
bin/zookeeper-server-start.sh config/zookeeper.properties &
配置Zookeeper(config/zookeeper.properties
):
dataDir=/var/lib/zookeeper
clientPort=2181
maxClientCnxns=0
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
啟動多個Zookeeper實例:
在不同服務器上重復上述步驟,確保每個服務器的server.X
配置不同。
編輯server.properties(config/server.properties
):
broker.id=1 # 每個broker的唯一ID
listeners=PLAINTEXT://:9092
log.dirs=/var/lib/kafka-logs
zookeeper.connect=zoo1:2181,zoo2:2181,zoo3:2181
配置多個broker:
在不同服務器上重復上述步驟,確保每個broker的broker.id
和listeners
配置不同。
在每個服務器上啟動Kafka Broker:
bin/kafka-server-start.sh config/server.properties &
創建一個高可用的Topic:
bin/kafka-topics.sh --create --topic my-topic --bootstrap-server zoo1:9092,zoo2:9092,zoo3:9092 --replication-factor 3 --partitions 3
查看Broker狀態:
bin/kafka-topics.sh --describe --topic my-topic --bootstrap-server zoo1:9092,zoo2:9092,zoo3:9092
生產者和消費者測試:
# 生產者
bin/kafka-console-producer.sh --topic my-topic --bootstrap-server zoo1:9092,zoo2:9092,zoo3:9092
# 消費者
bin/kafka-console-consumer.sh --topic my-topic --from-beginning --bootstrap-server zoo1:9092,zoo2:9092,zoo3:9092
/var/lib/kafka-logs
和/var/lib/zookeeper
目錄下。通過以上步驟,你可以在Ubuntu上部署一個高可用的Kafka集群。