Linux下Docker安装Kafka
Docker安装Kafka
前提条件,Linux服务器已安装docker。并且已经安装Zookeeper并启动。
下载Kafka镜像
Kafka目前没有官方镜像,本教程采用wurstmeister/kafka镜像来安装。下载kafka镜像命令:
docker pull wurstmeister/kafka
启动kafka
docker run -d --name kafka -p9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=172.18.0.1:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.18.0.1:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 wurstmeister/kafka
主要设置了4个参数,中间两个参数的127.0.0.1改为宿主机器的IP地址,如果不这么设置,可能会导致在别的机器上访问不到kafka。
通过docker ps可以看到kafka已经成功启动,同时可以通过:
docker logs -f kafka
来查看docker的启动情况。
测试kafka
进入kafka容器的命令行
docker exec -ti kafka /bin/bash
进入kafka所在目录
cd opt/kafka_2.12-1.1.0/
创建一个主题:
## 如果Zookeeper和kafka在一个容器中启动
bin/kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic mykafka
## 如果Zookeeper单独启动,需指定内网地址
bin/kafka-topics.sh --create --zookeeper 172.18.0.1:2181 --replication-factor 1 --partitions 1 --topic mykafka
## 执行结果
Created topic "mykafka".
查看新创建的topic:
bin/kafka-topics.sh --zookeeper 172.18.0.1:2181 --describe --topic mykafka
## 结果
Topic:mykafka PartitionCount:1 ReplicationFactor:1 Configs:
Topic: mykafka Partition: 0 Leader: 0 Replicas: 0 Isr: 0
运行一个消息生产者,指定topic为刚刚创建的主题,执行命令后并输入发布消息的内容(^C退出):
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic mykafka
运行一个消费者,指定同样的主题:
## Zookeeper配置同上
bin/kafka-console-consumer.sh --zookeeper zookeeper:2181 --topic mykafka --from-beginning
bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --from-beginning --topic mykafka
## 执行结果,正是在生产者输入的消息内容
a
exit
小结
至此完成kafka单机版本的部署和测试。
关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台
除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接
本文链接:https://choupangxia.com/2019/07/06/linux%e4%b8%8bdocker%e5%ae%89%e8%a3%85kafka/