一、概述

本文以 kafka_2.13-3.1.0.tgz 版本为例,描述在 CentOS 7.6 上单机方式部署 kafka 的流程。

二、部署流程

kafka 需要 javazookeeper 环境,本文不赘述这两个环境的部署。

2.1 下载并解压安装包

  1. 进入kafka官网下载:https://kafka.apache.org/downloads 选择一个安装包下载。

  2. 解压安装包。

    tar -zxvf kafka_2.13-3.1.0.tgz
    

2.2 配置

  1. 进入 config 目录,修改 server.properties 文件中的 zookeeper 地址和日志存储路径。

    # 配置日志存储路径
    log.dirs=/opt/kafka/logs
    # 配置zookeeper的地址和端口
    zookeeper.connect=localhost:2181
    # 允许外部端口连接                                            
    listeners=PLAINTEXT://0.0.0.0:9092  
    # 外部代理地址
    advertised.listeners=PLAINTEXT://192.168.10.14:9092
    

    还有一些其他可配置的信息,非必要,根据实际情况配置。

    # 在集群中的唯一标识,类似zookeeper的myid
    # 单机部署时直接填0就好
    broker.id=0
    # kafka对外提供服务的端口
    port=9092
    

2.3 运行

  1. 启动

    nohup bin/kafka-server-start.sh config/server.properties &
    
  2. 创建名为 testtopic

    bin/kafka-topics.sh --create --replication-factor 1 --partitions 1 --topic test --bootstrap-server localhost:9092
    
  3. 查询 topic 列表

    bin/kafka-topics.sh --list --bootstrap-server localhost:9092
    

三、常见问题

  1. zookeeper is not a recognized option 错误

    源于 kafka 版本不同,不能使用 --zookeeper localhost:2181 参数,应该使用 --bootstrap-server localhost:9092 参数替代