Kafka 安装及配置

基本介绍

kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,
消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。

环境介绍

  • 系统: Ubuntu 18.04

安装配置 ZooKeeper

  1. 下载 配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    # 打开 zoo.cfg 可以配置端口,目录等
    wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
    tar zxvf zookeeper-3.4.6.tar.gz
    cd zookeeper-3.4.6
    cp -rf conf/zoo_sample.cfg conf/zoo.cfg
    vim conf/zoo.cfg

    # 启动
    bin/zkServer.start

安装配置 Kafka

  1. 下载 配置 (需要修改 server.properties zookeeper.connect=localhost:2181)

    1
    2
    3
    4
    5
    # 打开 zoo.cfg 可以配置端口,目录等
    wget http://apache.fayea.com/kafka/0.8.2.1/kafka_2.10-0.8.2.1.tgz
    tar -zxf kafka_2.10-0.8.2.1.tgz
    cd kafka_2.10-0.8.2.1
    vi config/server.properties
  2. 启动

    1
    bin/kafka-server-start.config/server.properties
  3. 命令简介

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    # 创建Topic
    bin/kafka-topics --create --topic kafkatopic --replication-factor 1 --partitions 1 --zookeeper localhost:2181

    # 查看Topic
    bin/kafka-topics --list --zookeeper localhost:2181

    # 启动Producer 生产消息
    bin/kafka-console-producer --broker-list localhost:9092 --topic kafkatopic

    # 启动Consumer 消费消息
    bin/kafka-console-consumer --zookeeper localhost:2181 --topic kafkatopic --from-beginning

    # 删除Topic
    bin/kafka-run-class kafka.admin.TopicCommand --delete --topic kafkatopic --zookeeper localhost:2181

    # 查看Topic 的offset
    bin/kafka-consumer-offset-checker --zookeeper localhost:2181 --topic kafkatopic --group consumer

Kadka 监控配置

KafkaOffsetMonitor 安装配置

  1. 下载 https://github.com/quantifind/KafkaOffsetMonitor/releases/tag/v0.2.0

  2. 启动

    1
    2
    3
    4
    5
    6
    7
    8
    java -cp KafkaOffsetMonitor-assembly-0.2.0.jar \
    com.quantifind.kafka.offsetapp.OffsetGetterWeb \
    --zk loaclhost:2181 \
    --port 8089 \
    --refre10.seconds \
    --retain 2.days

    # 可以用 nohup & 启动

Kafka-manager

  1. 下载 https://github.com/yahoo/kafka-manager

  2. 安装配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18

    # 默认配置java 环境

    git clone https://github.com/yahoo/kafka-manager/releases

    cd kafka-manager

    ./sbt clean dist

    # 命令执行完成后,在 target/universal 目录中会生产一个zip压缩包kafka-manager-1.3.3.7.zip

    cd target/universal

    unzip kafka-manager-1.3.3.7.zip


    # 配置 kafka-manager.zkhosts="localhost:2181"
    vi conf/application.conf
  3. 这里如果想看见更多信息需要额外配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    # 修改 KAFKA_JMX_OPTS
    vi kafka-run-class.sh

    KAFKA_JMX_OPTS="-Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
    JMX_PORT=9999

    # 添加 JMX_PORT
    vi kafka-server-start.sh

    export JMX_PORT=${JMX_PORT:-9999
  4. 启动

    1
    2
    bin/kafka-manager
    # 可以用 nohup & 启动