安装

  1. [JDK]
  2. # 临时启动JDK环境
  3. : vim /etc/profile
  4. : export JAVA_HOME=/opt/jdk1.8.0_211 && export PATH=$PATH:$JAVA_HOME/bin
  5. : java -version
  6. [zookeeper]
  7. : https://mirrors.cnnic.cn/apache/zookeeper/
  8. # https://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz
  9. : tar -zxvf zookeeper-3.4.14.tar.gz -C /opt/kafka/zookeeper-3.4.14
  10. # 配置文件
  11. : cp conf/zoo_sample.cfg conf/zoo.cfg
  12. # 启动
  13. : ./bin/zkServer.sh start
  14. // # 存储快照文件的目录,默认情况下, 事务日志也会存储在该目录
  15. // # mkdir -p /data/zk/logs
  16. // # dataDir=/data/zk/
  17. // # dataLogDir=/data/zk/logs
  18. // # 使用 Kafka 内置 Zookeeper
  19. // # bin/zookeeper-server-start.sh config/zookeeper.properties
  20. [kafka]
  21. : http://kafka.apache.org/downloads
  22. # https://archive.apache.org/dist/kafka/2.1.0/kafka_2.12-2.1.0.tgz
  23. : tar -zxvf kafka_2.12-2.1.0.tgz -C /opt/kafka/kafka_2.12-2.1.0
  24. : bin/kafka-server-start.sh config/server.properties
  25. [环境配置 vim /etc/profile]
  26. KAFKA_HOME ~/.bash_profile
  27. export KAFKA_HOME=/opt/kafka/kafka_2.12-2.1.0
  28. export PATH=$PATH:$KAFKA_HOME/bin
  29. source ~/.bash_profile

配置

  1. [配置]
  2. # 消费者配置
  3. consumer.properites
  4. # 生产者配置
  5. producer.properties
  6. # 服务器的配置
  7. server.properties
  8. [server.properties]
  9. port=9092
  10. # 内网设置, 设置后只能通过列表中配置访问, 否则默认只能本地访问
  11. : listeners=PLAINTEXT://10.0.0.11:9092
  12. # 外网设置
  13. : advertised.listeners=PLAINTEXT://10.0.0.11:9092
  14. [zookeeper.properties]
  15. //: 端口2181是ZooKeeper的默认端口
  16. [run]
  17. zookeeper # zookeeper-server-start.sh zookeeper.properties
  18. kafka # kafka-server-start.sh -daemon server.properties
  19. # -daemon 可选,表示后台启动kafka服务
  20. // 关闭防火墙

kafka_2.12-2.2.0.tgz

测试

[测试]

    # 创建主题
    : kafka-topics.sh --zookeeper 127.0.0.1:2181 \
    --create --topic msg-test --partitions 1 --replication-factor 1

  # 查看主题信息
  : kafka-topics.sh --zookeeper 127.0.0.1:2181 --list
  : kafka-topics.sh --zookeeper 127.0.0.1:2181 --describe

    # 创建生产者
  : kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic msg-test

  # 创建消费者
  : kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 \
    --topic msg-test --from-beginning

  kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --group test --describe

  # 查询消费者信息
  : kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --list --all-topics
  : kafka-consumer-groups.sh \
      --bootstrap-server 127.0.0.1:9092 --group console-consumer-51108 --describe

install & docker

[安装]

    : docker pull centos:7

  : docker run \
    --name xk_zk_kafka \
    -p 2181:2181 \
    -p 9092:9092 \
    -d -it centos:7
    --privileged=true --net=host
    //-v /vdb/zk_kafka/db/:/data/db/

    : docker cp jdk-8u261-linux-x64.tar.gz xk_zk_kafka:/opt/
  : docker cp zookeeper-3.4.14.tar.gz xk_zk_kafka:/opt/
  : docker cp kafka_2.12-2.2.0.tgz xk_zk_kafka:/opt/

  : docker exec -it xk_zk_kafka /bin/bash
  // - yum install update
  // -
  // - mkdir -p /usr/local/zkkafka
  // - tar -zxvf jdk-8u261-linux-x64.tar.gz -C /usr/local/zkkafka/
  // - tar -zxvf zookeeper-3.4.14.tar.gz -C /usr/local/zkkafka/
  // - tar -zxvf kafka_2.12-2.2.0.tgz -C /usr/local/zkkafka/

  // 配置环境

  // 容器中必须配置
  // listeners=PLAINTEXT://0.0.0.0:9092
  // advertised.listeners=PLAINTEXT://192.168.0.122:9092

  : vim /etc/profile
  : source /etc/profile

export JAVA_HOME=/usr/local/zkkafka/jdk1.8.0_261
export PATH=$PATH:$JAVA_HOME/bin

export KAFKA_HOME=/usr/local/zkkafka/kafka_2.12-2.2.0
export PATH=$PATH:$KAFKA_HOME/bin

export ZK_HOME=/usr/local/zkkafka/zookeeper-3.4.14
export PATH=$PATH:$ZK_HOME/bin

[运行]

[打包镜像]

    # 提交容器为镜像
    : docker commit  -m="zk:3.4.14,kafka:2.12-2.2.0" -a="xknower" xk_zk_kafka xk_zk_kafka:1

    # 保存
  : docker save xk_zk_kafka:1 | gzip > xk_zk_kafka_1.tar.gz
  // docker export xk_zk_kafka | gzip > xk_zk_kafka_1_ex.tar.gz

  # 导入
  : gunzip -c xk_zk_kafka_1.tar.gz | docker load
  // gunzip -c xk_zk_kafka_1.tar.gz | docker import

  docker run \
    --name zk_kafka \
    --privileged=true --net=host \
    -p 2181:2181 \
    -p 9092:9092 \
    -d -it xk_zk_kafka:1

[]

  > docker pull wurstmeister/zookeeper:3.4.6
    : docker run --name zookeeper -p 2181:2181 -t -d wurstmeister/zookeeper

  > docker pull wurstmeister/kafka:2.12-2.2.0
  : docker run -d \
    --name kafka \
    -p 9092:9092 \
    -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=192.168.119.130:2181 \
    -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.119.130:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
    -t wurstmeister/kafka \
    --privileged=true --net=host \