温馨提示×

kafka于ubuntu如何稳定运行

小樊
52
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存储日志,确保网络带宽充足。

注意事项

  • 避免使用默认的/tmp目录存储数据,需指定持久化路径(如/var/lib/kafka/logs)。
  • 多节点部署时需确保broker.id唯一,且ZooKeeper集群配置正确。
  • 定期清理过期日志,避免磁盘占满。

参考来源:

0