ubuntu

kafka于ubuntu如何稳定运行

小樊
55
2025-08-20 12:10:57
栏目: 智能运维

在Ubuntu上稳定运行Kafka需从环境准备、配置优化、服务管理及监控维护等方面入手,具体步骤如下:

  1. 安装基础环境

    • 安装Java(推荐OpenJDK 11):
      sudo apt update  
      sudo apt install openjdk-11-jdk  
      
      验证:java -version
    • 创建专用用户(可选,提升安全性):
      sudo useradd -m kafka  
      sudo passwd kafka  
      sudo su - kafka  
      ```。  
      
      
  2. 下载与配置Kafka

    • 下载并解压Kafka(选择最新稳定版):
      wget https://downloads.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz  
      tar -xzf kafka_2.13-3.6.1.tgz  
      mv kafka_2.13-3.6.1 ~/kafka  
      ```。  
      
    • 配置环境变量(可选):
      echo "export KAFKA_HOME=~/kafka" >> ~/.bashrc  
      echo "export PATH=$KAFKA_HOME/bin:$PATH" >> ~/.bashrc  
      source ~/.bashrc  
      ```。  
      
      
  3. 配置ZooKeeper与Kafka

    • ZooKeeper(内置)
      编辑config/zookeeper.properties,设置数据目录:
      dataDir=/tmp/zookeeper  
      clientPort=2181  
      
      启动:bin/zookeeper-server-start.sh config/zookeeper.properties &
    • Kafka Broker
      编辑config/server.properties
      broker.id=0  
      listeners=PLAINTEXT://0.0.0.0:9092  
      advertised.listeners=PLAINTEXT://服务器IP:9092  
      log.dirs=/var/lib/kafka/logs  # 持久化存储路径  
      zookeeper.connect=localhost:2181  
      delete.topic.enable=true  
      
      启动:bin/kafka-server-start.sh -daemon config/server.properties
  4. 服务化与稳定性优化

    • 设置为Systemd服务(推荐):
      创建服务文件/etc/systemd/system/kafka.service
      [Unit]  
      Description=Apache Kafka  
      After=network.target zookeeper.service  
      [Service]  
      User=kafka  
      Group=kafka  
      ExecStart=/home/kafka/kafka/bin/kafka-server-start.sh /home/kafka/kafka/config/server.properties  
      ExecStop=/home/kafka/kafka/bin/kafka-server-stop.sh  
      Restart=on-failure  
      [Install]  
      WantedBy=multi-user.target  
      
      启用并启动:
      sudo systemctl daemon-reload  
      sudo systemctl enable --now kafka  
      ```。  
      
    • 调整系统参数
      增加文件描述符限制:
      sudo ulimit -n 65536  
      
      优化内核参数(如vm.swappinessnet.core.somaxconn)。
  5. 功能验证与监控

    • 创建Topic并测试消息收发:
      # 创建Topic  
      bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --topic test --partitions 3 --replication-factor 1  
      # 生产者发送消息  
      bin/kafka-console-producer.sh --bootstrap-server localhost:9092 --topic test  
      # 消费者接收消息  
      bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning  
      ```。  
      
    • 监控与日志管理
      • 使用Kafka自带工具(如kafka-consumer-groups.sh)监控消费情况。
      • 配置日志轮转(如log4j.properties中设置log.retention.hours)。
  6. 安全与性能调优(可选)

    • 启用认证与加密:配置SSL/SASL(参考官方文档)。
    • 性能优化
      • 调整分区数与副本数(副本数建议≥2,分区数与消费者并行度匹配)。
      • 优化JVM参数:-Xms4G -Xmx4G -XX:+UseG1GC
      • 硬件层面使用SSD存储日志,确保网络带宽充足。

注意事项

参考来源:

0
看了该问题的人还看了