1. 下载镜像
1. kafka
依赖 zookeeper
,需要先拉取 zookeeper
镜像
1 | # 下载 zookeeper 镜像 |
2. 拉取 kafka
镜像
1 | # kafka 没有官方镜像,所以选择下载 kafka 镜像 |
2. 生成容器并启动
1. 启动 zookeeper
1 | $ docker run -d --name zookeeper -p 2081:2181 -t wurstmeister/zookeeper |
2. 启动 kafka
1 | $ docker run -d --restart=always --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name kafka -p 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=localhost --env KAFKA_ADVERTISED_PORT=9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka:latest |
3. 测试发送消息
1. 创建主题
1 | # 进入 kafka 容器 |
2. 运行一个生产者,指定 topic 为刚刚创建的 topic:
1 | bash-4.4# ./bin/kafka-console-producer.sh --broker-list 172.17.0.3:9092 --topic mykafka |
3. 新开一个ssh,进入相同目录,运行一个消费者,指定同样的主题:
1 | bash-4.4# ./bin/kafka-console-consumer.sh --bootstrap-server 172.17.0.3:9092 --topic mykafka --from-beginning |
注意
- 查看
kafka
版本1
2# 进入到 kafka 安装目录,如下命令,前者是 Scala 版本,后者是 kafka 版本
$ find ./libs/ -name \*kafka_\* | head -1 | grep -o '\kafka[^\n]*'