kafka 学习笔记 2 -使用 docker 安装部署 kafka

2021-07-20 11:32:43 浏览数 (1)

1. 背景

本节使用 docker-compose 来创建 kafka 容器。

2. 创建 docker 容器

我使用 docker-compose 来创建,新建文件夹并在文件夹下创建一个 “docker-compose.yml”,这个文件描述了具体配置如下:

代码语言:javascript复制
version: '3'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    depends_on: [ zookeeper ]
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 192.168.1.8
      KAFKA_CREATE_TOPICS: "test:1:1"
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    # volumes:
    #   - /data/product/zj_bigdata/data/kafka/docker.sock:/var/run/docker.sock

它创建了一个 zookeeper 和 一个 kafka 容器。 注意: KAFKA_ADVERTISED_HOST_NAME改成你实际的机器ip

然后在执行下面命令就可以了

代码语言:javascript复制
docker-compose build      # 构建
docker-compose up         # 启动

3. 命令行操作 kafka 示例

3.1 进入到容器内

使用 docker exec -it 进入到docker容器内

代码语言:javascript复制
docker exec -it kafka_kafka_1 bash

3.2 操作 topic

1、创建topic 使用了 kafka-topics.sh 参数说明: --create --topic topic123 指示了要创建topic名字叫 topic123 --zookeeper kafka_zookeeper_1:2181 指示了 zookeeper 服务的地址

代码语言:javascript复制
$KAFKA_HOME/bin/kafka-topics.sh --create --topic topic123 --partitions 4 --zookeeper kafka_zookeeper_1:2181 --replication-factor 1 

2、查看有哪些 topic

代码语言:javascript复制
$KAFKA_HOME/bin/kafka-topics.sh kafka-topics --list --zookeeper kafka_zookeeper_1

3、查看 topic 详情

代码语言:javascript复制
$KAFKA_HOME/bin/kafka-topics.sh --zookeeper kafka_zookeeper_1:2181 --describe --topic topic123

3.3 接收和发送

1、发送信息 发送信息使用: kafka-console-producer.sh 参数说明: --topic=test 指示了一个 topic 名称 --broker-list kafka_kafka_1:9092 指示了 kafka服务的地址

代码语言:javascript复制
$KAFKA_HOME/bin/kafka-console-producer.sh --topic=topic123 --broker-list kafka_kafka_1:9092

2、接收信息 接收信息使用: kafka-console-consumer.sh

代码语言:javascript复制
$KAFKA_HOME/bin/kafka-console-consumer.sh --bootstrap-server kafka_kafka_1:9092 --from-beginning --topic topic123

END

0 人点赞