Kafka 集群安装(基于 kraft)


本文使用的 kafka 版本为 3.9.0,用三台机器进行集群,安装 kafka 前,机器上的环境要求:

  1. jre 运行环境(kafka 由 scala 语言编写,所以需要依赖 jvm )
  2. 三台主机都要关闭防火墙 systemctl stop firewalld

一、安装 kafka(三台主机做相同的操作):

  1. 下载kafka:kafka 官方地址
  2. 上传 kafka 到目录,本文使用的目录为 /usr/local/kafka,上传后目录结构如下:
    上传kafka
  3. 解压 kafka,tar -zxvf kafka_2.13-3.9.0.tgz,解压后的目录结构如下:
    解压kafka后目录结构
  4. 为了方便使用,此处对解压后的文件进行重命名 mv kafka_2.13-3.9.0 kafka,重命名后的目录结构如下:
    重命名后的路径
  5. 提前创建数据目录,mkdir data,创建后目录结构如下:
    创建data后目录结构
  6. 修改 kafka 配置文件(注意这里跟基于 zookeeper 搭建集群时的文件路径不一样,这是 Kraft 路径下的配置文件),vim /usr/local/kafka/kafka/config/kraft/server.properties,重点关注以下属性:
    # 每台主机中的 nodeId 必须唯一,本次实验三台主机 brokerId 分别是 1 2 3
    node.id=1
    # 配置集群中参与投票的节点。其中 @ 前⾯的是 nodeId,后⾯是 nodeId 对应的节点的地址和端⼝
    controller.quorum.voters=1@192.168.2.28:9093,2@192.168.2.29:9093,3@192.168.2.30:9093
    # 对外暴露的端口和地址,不要用 localhost 注册,分别用每台主机的 ip 注册
    advertised.listeners=PLAINTEXT://192.168.2.28:9092,CONTROLLER://192.168.2.28:9093
    # 设置刚刚创建的数据目录
    log.dirs=/usr/local/kafka/data/
    
  7. 对日志目录格式化
    1. 在其中任意一台机器上运行 sh /usr/local/kafka/kafka/bin/kafka-storage.sh random-uuid
    2. 记住生成的 uuid,本次生成的 uuid 为 1FbUrPfaQvqadcKp8z_Rvw
    3. 分别在三台机器上运行(三台机器要用相同的 uuid)
      sh /usr/local/kafka/kafka/bin/kafka-storage.sh format -t 1FbUrPfaQvqadcKp8z_Rvw -c /usr/local/kafka/kafka/config/kraft/server.properties
  8. 至此 kafka 集群安装完成。

二、测试是否安装成功:

  1. 三台主机分别启动:
    nohup sh /usr/local/kafka/kafka/bin/kafka-server-start.sh /usr/local/kafka/kafka/config/kraft/server.properties &
  2. 在任意一台主机中创建一个主题(下面命令中的 IP 可以是三台主机中的任意一台)
    sh /usr/local/kafka/kafka/bin/kafka-topics.sh --bootstrap-server 192.168.2.28:9092 --create --replication-factor 2 --partitions 4 --topic repeatKraft
  3. 查看集群是否成功:
    sh /usr/local/kafka/kafka/bin/kafka-topics.sh --bootstrap-server 192.168.2.28:9092 --describe --topic repeatKraft
  4. 当出现下图中的结构(nodeId 设置的 1,2,3 都在 replicas 中出现),代表集群成功。
    请添加图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值