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