0%

Docker安装Kafka和Zookeeper及简单测试

学完了Mqtt,我又想试试很热门的kafka,我在几个项目中都用过,但是未曾自己搭建一次,所以再次记录,我准备安装在linux系统中,使用Centos7系统,这次又加上了我很喜欢的docker容器,希望一切顺利,

1.基本操作,先启动docker容器,执行命令,然后查看一下镜像情况,没错,还是上次redis留下的东西,

1
service docker start

4.1

2.拉取zookeeper的镜像,执行命令,

1
docker pull wurstmeister/zookeeper

3.启动一个zookeeper镜像的实例,执行命令,

1
docker run -d -p 2181:2181 --name zookeeper --restart always xxx

4.拉取kafka的镜像,执行命令,

1
docker pull wurstmeister/kafka

5.启动一个kafka镜像的实例,执行命令,

1
2
3
4
5
6
7
8
docker run -d --name kafka -p 9092:9092 -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=10.0.10.188:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.0.10.188:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka

#参数说明(这里是复制的,毕竟我也是第一次,命令我整理了一下)
-e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
-e KAFKA_ZOOKEEPER_CONNECT=10.0.10.188:2181/kafka 配置zookeeper管理kafka的路径10.0.10.188:2181/kafka
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://10.0.10.188:9092 把kafka的地址端口注册给zookeeper,如果是远程访问要改成外网IP,类如Java程序访问出现无法连接。
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口
-v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间

6.到此,两个实例都启动起来了,看一看运行状况,执行命令,

1
docker ps  #这是查看正在运行的,-a 查看所有

4.2

7.目前看起来没啥问题,那就简单的试试kafka的功能吧,进入容器内部,执行命令,

1
docker exec -it kafka /bin/sh

8.进入 /opt/kafka_2.13-2.6.0/bin目录,然后启动生成者,发送一条消息,执行命令,

1
./kafka-console-producer.sh --broker-list localhost:9092 --topic sun

4.3

9.另外打开一个窗口,同样进入容器内部后,进入 /opt/kafka_2.13-2.6.0/bin目录,然后启动消费者,接收生产者发出的消息,执行命令,

1
2
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic sun --from-
beginning

10.其实可以看到,当生成者窗口发出消息后,消费者提示有新消息,

4.4

总结,和其他docker安装其他软件一样,步骤很简单,后面测试我找命令找了一会,那个复制那一段来自docker安装kafka,over,下一篇将在Idea中连接测试,祝我一切顺利,木有bug。

----------本文结束感谢您的阅读----------