debian

Debian Kafka集群怎样搭建

小樊
42
2025-04-13 08:07:34
栏目: 智能运维

搭建Debian上的Kafka集群,特别是使用KRaft模式以去除对ZooKeeper的依赖,可以按照以下步骤进行:

准备工作

  1. 安装JDK

    • 确保每台机器上安装了JDK 11或JDK 17。可以从Apache Kafka官网下载对应版本的Kafka。
  2. 配置主机名和hosts文件

    • 修改每台机器的主机名:
      hostnamectl set-hostname kafka1
      hostnamectl set-hostname kafka2
      hostnamectl set-hostname kafka3
      
    • 编辑/etc/hosts文件,确保每台机器的IP地址和主机名映射正确。
  3. 配置SSH免密登录

    • 生成SSH密钥对并分发到其他机器:
      ssh-keygen -t rsa -b 4096
      ssh-copy-id kafka1
      ssh-copy-id kafka2
      ssh-copy-id kafka3
      
  4. 配置时区和时间同步

    • 安装NTP服务并配置时间同步:
      apt-get update
      apt-get install -y ntp
      rm -f /etc/localtime
      sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
      ntpdate -u ntp.aliyun.com
      systemctl start ntp
      systemctl enable ntp
      

搭建Kafka集群

  1. 下载并解压Kafka

    wget https://archive.apache.org/dist/kafka/3.4.0/kafka_2.13-3.4.0.tgz
    tar -zxvf kafka_2.13-3.4.0.tgz
    cd kafka_2.13-3.4.0
    
  2. 创建数据存储目录

    mkdir -p data
    
  3. 配置Kafka

    • 编辑config/kraft/server.properties文件,设置node.idlistenersadvertised.listenerscontroller.quorum.voters等参数。例如:
      node.id=1
      process.roles=broker,controller
      listeners=PLAINTEXT://:9092,CONTROLLER://:9093
      inter.broker.listener.name=PLAINTEXT
      advertised.listeners=PLAINTEXT://node1:9092
      controller.listener.names=CONTROLLER
      
  4. 生成集群唯一标志ID

    bin/kafka-storage.sh random-uuid
    
  5. 初始化存储路径

    bin/kafka-storage.sh format -t cGuFZQ70Rf6OQFNMumq33g -c config/kraft/server.properties
    
  6. 启动Kafka服务

    bin/kafka-server-start.sh -daemon config/kraft/server.properties
    
  7. 验证集群启动

    tail -f logs/server.log
    

测试集群

  1. 查看Broker情况

    bin/kafka-broker-api-versions.sh --bootstrap-server node1:9092,node2:9092,node3:9092
    
  2. 创建Topic

    bin/kafka-topics.sh --create --bootstrap-server node1:9092,node2:9092,node3:9092 --replication-factor 3 --partitions 3 --topic test_topic
    
  3. 生产消息和消费消息

    • 使用Kafka提供的生产者和消费者工具进行测试。

通过以上步骤,你可以在Debian上成功搭建一个使用KRaft模式的Kafka集群。这种模式去除了对ZooKeeper的依赖,简化了部署和运维的复杂性。

0
看了该问题的人还看了