在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集群。