1,下载zookeeper镜像:
docker pull wurstmeister/zookeeper
2,下载kafka镜像:
docker pull wurstmeister/kafka
3,在自己选的目录下(随便一个目录下)创建一个docker-compose.yml文件,
内容如下:(注意里面的ip地址(192.168.0.101)改为你自己本地的ip地址。以Mac为例,在cmd命令框中使用ipconfig getifaddr en0指令来获取)
version: '2'
services:
zoo1:
image: wurstmeister/zookeeper
restart: unless-stopped
hostname: zoo1
ports:
- "2181:2181"
container_name: zookeeper
# kafka version: 1.1.0
# scala version: 2.12
kafka1:
image: wurstmeister/kafka
ports:
- "9092:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 192.168.0.101
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ZOOKEEPER_CONNECT: "zoo1:2181"
KAFKA_BROKER_ID: 1
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_CREATE_TOPICS: "stream-in:2:1,stream-out:2:1"
depends_on:
- zoo1
container_name: kafka1
kafka2:
image: wurstmeister/kafka
ports:
- "9093:9092"
environment:
KAFKA_ADVERTISED_HOST_NAME: 192.168.0.101
KAFKA_ADVERTISED_PORT: 9093
KAFKA_ZOOKEEPER_CONNECT: "zoo1:2181"
KAFKA_BROKER_ID: 2
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
depends_on:
- zoo1
container_name: kafka2
附上图:
![](https://img.haomeiwen.com/i1132552/36b10fcdceee2219.png)
4,启动docker-compose
在你之前选的那个目录下,执行cmd命令如下:
docker-compose up -d
5,可用性测试
自此,如果没有出现什么错误,通过docker ps 应该可以看到已经成功启动了一个zookeeper容器,两个Kafka容器。
通过指定容器名(假设容器名为 kafka1)进入一个Kafka容器:
docker exec -it kafka1 /bin/bash
查看已有的topic列表:
$KAFKA_HOME/bin/kafka-topics.sh --zookeeper zoo1:2181 --list
发布消息: (输入若干条消息后 按^C 退出发布)
$KAFKA_HOME/bin/kafka-console-producer.sh --topic=stream-in \
--broker-list kafka1:9092
接收消息:
$KAFKA_HOME/bin/kafka-console-consumer.sh \
--bootstrap-server kafka1:9092 \
--from-beginning --topic stream-in
如果接收到了发布的消息,证明整个部署正常,就可以正式开始开发工作了。
其他命令:
创建主题:$KAFKA_HOME/bin/kafka-topics.sh --create --zookeeper zoo1:2181 --replication-factor 2 --partitions 3 --topic test1
网友评论