在Linux上配置Apache Kafka的高可用性(High Availability, HA)通常涉及以下幾個關鍵步驟:
在所有節點上安裝相同版本的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集群也已部署并運行。
zoo.cfg)tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=zoo1:2888:3888
server.2=zoo2:2888:3888
server.3=zoo3:2888:3888
myid)在每個ZooKeeper節點的數據目錄下創建一個myid文件,內容為該節點的ID。
echo "1" > /var/lib/zookeeper/myid # 在zoo1節點
echo "2" > /var/lib/zookeeper/myid # 在zoo2節點
echo "3" > /var/lib/zookeeper/myid # 在zoo3節點
編輯Kafka的配置文件 (server.properties) 以支持高可用性。
server.properties 示例配置broker.id=1 # 每個broker的唯一ID
listeners=PLAINTEXT://:9092
log.dirs=/var/lib/kafka-logs
zookeeper.connect=zoo1:2181,zoo2:2181,zoo3:2181
default.replication.factor=3 # 副本因子
min.insync.replicas=2 # 最小同步副本數
group.initial.rebalance.delay.ms=0
在每個節點上啟動ZooKeeper和Kafka。
# 啟動ZooKeeper
bin/zookeeper-server-start.sh config/zoo.cfg
# 啟動Kafka
bin/kafka-server-start.sh config/server.properties
創建一個Topic并設置副本因子為3。
bin/kafka-topics.sh --create --topic my-topic --bootstrap-server zoo1:9092 --replication-factor 3 --partitions 3
配置監控工具(如Prometheus、Grafana)來監控Kafka集群的健康狀況和性能指標。同時,定期檢查日志文件以發現潛在問題。
通過以上步驟,你可以在Linux上配置一個高可用的Kafka集群。確保在生產環境中進行充分的測試和監控,以保證集群的穩定性和可靠性。