温馨提示×

Kafka于Linux的配置步骤是什么

小樊
36
2026-01-05 15:24:11
栏目: 智能运维

Linux 上 Kafka 配置步骤

一 环境准备

  • 安装 Java 8+(Kafka 依赖 JVM)。例如在 CentOS 执行:sudo yum install -y java-1.8.0-openjdk-devel;在 Ubuntu 执行:sudo apt-get update && sudo apt-get install -y openjdk-8-jdk。验证:java -version。
  • 开放网络端口:Kafka 默认端口 9092;如使用自带 Zookeeper,还需开放 2181
    • firewalld:sudo firewall-cmd --zone=public --add-port=9092/tcp --permanent && sudo firewall-cmd --reload
    • ufw:sudo ufw allow 9092/tcp
  • 建议创建专用数据目录(如 /data/kafka-logs),并确保磁盘空间充足与权限正确。

二 安装与目录规划

  • 下载并解压 Kafka 二进制包(示例为 3.4.0):
    wget https://downloads.apache.org/kafka/3.4.0/kafka_2.13-3.4.0.tgz
    tar -xzf kafka_2.13-3.4.0.tgz -C /opt/
    mv /opt/kafka_2.13-3.4.0 /opt/kafka
  • 可选:配置环境变量(便于全局使用脚本)
    echo ‘export KAFKA_HOME=/opt/kafka’ >> /etc/profile
    echo ‘export PATH=$PATH:$KAFKA_HOME/bin’ >> /etc/profile
    source /etc/profile
  • 目录约定:安装目录 /opt/kafka;日志数据目录(在配置中指定)如 /data/kafka-logs

三 核心配置 server.properties

  • 关键参数与示例(单机)
    • broker.id:broker 唯一标识,单机可设为 0
    • listeners:监听地址与端口,例:PLAINTEXT://:9092(监听所有地址)
    • advertised.listeners:客户端实际连接的地址;本地测试可用 PLAINTEXT://localhost:9092;有公网/域名时改为可达地址
    • log.dirs:消息日志存储路径,例:/data/kafka-logs
    • zookeeper.connect:Zookeeper 连接串,单机可用 localhost:2181
  • 示例片段
    broker.id=0
    listeners=PLAINTEXT://:9092
    advertised.listeners=PLAINTEXT://localhost:9092
    log.dirs=/data/kafka-logs
    zookeeper.connect=localhost:2181
  • 提示:如服务器有外网/多网卡,务必正确设置 advertised.listeners,否则客户端可能无法连接。

四 启动与验证

  • 启动服务(后台运行)
    • 启动 Zookeeper:/opt/kafka/bin/zookeeper-server-start.sh -daemon /opt/kafka/config/zookeeper.properties
    • 启动 Kafka:/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
    • 检查进程:jps 应能看到 QuorumPeerMain(Zookeeper)与 Kafka
  • 基础验证
    • 创建 Topic:/opt/kafka/bin/kafka-topics.sh --create --topic test-topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1
    • 发送消息:/opt/kafka/bin/kafka-console-producer.sh --topic test-topic --bootstrap-server localhost:9092
    • 接收消息:/opt/kafka/bin/kafka-console-consumer.sh --topic test-topic --from-beginning --bootstrap-server localhost:9092
  • 停止服务
    /opt/kafka/bin/kafka-server-stop.sh
    /opt/kafka/bin/zookeeper-server-stop.sh

五 常见问题与优化

  • 无法远程连接
    • 确认 listeners 为 0.0.0.0(如:PLAINTEXT://0.0.0.0:9092)
    • advertised.listeners 设置为客户端可达的 IP/域名:9092
    • 服务器与云安全组/防火墙已放行 9092
  • 磁盘与保留策略
    • 配置 log.retention.hours(保留时长)与 log.retention.bytes(容量上限)避免磁盘被占满
  • 性能调优(按硬件与负载调整)
    • 线程与网络:num.network.threads、num.io.threads
    • 缓冲区:socket.send.buffer.bytes、socket.receive.buffer.bytes
  • 监控与告警
    • 建议集成 Prometheus + Grafana 监控吞吐、延迟、请求错误等关键指标

0