1.拉取镜像
拉取zookeeper镜像
docker pull wurstmeister/zookeeper
拉取kafka镜像
docker pull wurstmeister/kafka
2. 启动容器
启动zookeeper
docker run -d --name zookeeper -p 2181 :2181 -t wurstmeister/zookeeper
启动kafka
docker run -d --name kafka -p 9092:9092 --link zookeeper -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://139.226.179.239:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
3. kafka启动参数说明
–link 用于容器直接的互通。
-e KAFKA_BROKER_ID=0 一个 kafka节点 就是一个 broker。一个集群由多个 broker 组成。一个 broker可以容纳多个 topic
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 配置zookeeper管理kafka的路径
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://139.226.179.239:9092 把kafka的地址端口注册给zookeeper,若远程访问要改成外网IP,千万注意是外网IP,很多文章只说是宿主机IP, 演示例子上写的是内网IP,很容易被误导
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口
-v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间
4.测试
创建topic
进入kafka容器
docker exec -it kafka /bin/bash
进入目录
cd opt/kafka_2.12-2.4.0/
创建测试topic
./bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic test-topic
生产者发布
./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic
本地消费者订阅
./bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic
java程序远程消费者客户端订阅
扫描二维码关注公众号,回复:
11040919 查看本文章