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单机版本的部署和测试。



Linux下Docker安装Kafka插图

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://choupangxia.com/2019/07/06/linux%e4%b8%8bdocker%e5%ae%89%e8%a3%85kafka/