以下是在Linux上搭建Kafka集群的步骤(以3节点为例):
systemctl stop firewalld && systemctl disable firewalld # 关闭防火墙
setenforce 0 # 临时关闭SELinux
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config # 永久关闭
yum install -y java-1.8.0-openjdk-devel
java -version # 验证安装
wget https://downloads.apache.org/zookeeper/stable/zookeeper-3.8.0.tar.gz
tar -zxvf zookeeper-3.8.0.tar.gz -C /opt
mv /opt/zookeeper-3.8.0 /opt/zookeeper
/opt/zookeeper/conf/zoo.cfg
,添加集群节点信息:tickTime=2000
initLimit=10
syncLimit=5
dataDir=/opt/zookeeper/data
clientPort=2181
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
/opt/zookeeper/data
目录下创建myid
,内容为对应节点ID(1/2/3)。/opt/zookeeper/bin/zkServer.sh start
wget https://downloads.apache.org/kafka/3.5.2/kafka_2.12-3.5.2.tgz
tar -zxvf kafka_2.12-3.5.2.tgz -C /usr/local/
ln -s /usr/local/kafka_2.12-3.5.2 /usr/local/kafka
/usr/local/kafka/config/server.properties
,关键参数:broker.id=1 # 每个节点唯一ID(1/2/3)
listeners=PLAINTEXT://node1:9092 # 监听地址(需为节点外网IP)
log.dirs=/usr/local/kafka/logs # 日志存储目录
zookeeper.connect=node1:2181,node2:2181,node3:2181 # ZooKeeper集群地址
将配置好的Kafka目录复制到其他节点,修改broker.id
和listeners
。/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
jps # 应看到Kafka进程
/usr/local/kafka/bin/kafka-topics.sh --create --bootstrap-server node1:9092 --replication-factor 3 --partitions 3 --topic test
/usr/local/kafka/bin/kafka-console-producer.sh --bootstrap-server node1:9092 --topic test
/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server node2:9092 --topic test --from-beginning
replication.factor
和partitions
参数调整数据冗余和并行度。server.properties
并配置证书)。以上步骤参考自,可根据实际环境调整参数。