在CentOS上实现Kafka的高可用性,可以通过以下几个步骤来配置和部署:
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
tar -xzf apache-zookeeper-3.7.0-bin.tar.gz
mv apache-zookeeper-3.7.0-bin /opt/zookeeper
mkdir /var/lib/zookeeper
mkdir /var/log/zookeeper
/opt/zookeeper/conf/zoo.cfg
:tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
initLimit=5
syncLimit=2
server.1=zookeeper1:2888:3888
server.2=zookeeper2:2888:3888
server.3=zookeeper3:2888:3888
echo "1" > /var/lib/zookeeper/myid # 在zookeeper1节点
echo "2" > /var/lib/zookeeper/myid # 在zookeeper2节点
echo "3" > /var/lib/zookeeper/myid # 在zookeeper3节点
wget https://archive.apache.org/dist/kafka/3.2.0/kafka_2.13-3.2.0.tgz
tar -xzf kafka_2.13-3.2.0.tgz
mv kafka_2.13-3.2.0 /opt/kafka
/opt/kafka/config/server.properties
:broker.id=1 # 每个broker的唯一ID
listeners=PLAINTEXT://:9092
log.dirs=/var/lib/kafka
zookeeper.connect=zookeeper1:2181,zookeeper2:2181,zookeeper3:2181
在每个Zookeeper节点上启动Zookeeper服务:
/opt/zookeeper/bin/zkServer.sh start
在每个Kafka broker节点上启动Kafka服务:
/opt/kafka/bin/kafka-server-start.sh /opt/kafka/config/server.properties
确保每个broker的broker.id
是唯一的,并且listeners
配置正确。
创建Topic时指定副本因子大于1:
/opt/kafka/bin/kafka-topics.sh --create --topic my-topic --partitions 3 --replication-factor 3 --bootstrap-server broker1:9092,broker2:9092,broker3:9092
确保ISR中的副本都是同步的,以保证数据的一致性和高可用性。
通过以上步骤,你可以在CentOS上实现Kafka的高可用性。确保定期备份配置文件和数据,并进行必要的测试以验证集群的稳定性和可靠性。