week3 XieJintao - XLab-Tongji/AIOpsConceptualModeling GitHub Wiki

Docker部署Kafka

1、下载镜像

这里使用了wurstmeister/kafka和wurstmeister/zookeeper这两个版本的镜像,依次输入命令

  • docker pull wurstmeister/zookeeper
  • docker pull wurstmeister/kafka

在命令行中运行docker images验证两个镜像已经安装完毕

2、启动

启动zookeeper

  • docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper

启动kafka

  • docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 --env KAFKA_ADVERTISED_HOST_NAME=localhost --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime wurstmeister/kafka:latest

可以通过docker ps查看启动状态

3、测试发送消息

执行Docker ps,找到kafka的Container ID,进入容器内部:

  • docker exec -it ${CONTAINER ID} /bin/bash

下面就是跟一般的kafka没什么区别了

创建一个主题:

  • kafka-topics.sh --create --zookeeper zookeeper:2181 --replication-factor 1 --partitions 1 --topic mykafka

运行一个消息生产者,指定topic为刚刚创建的主题

  • kafka-console-producer.sh --broker-list localhost:9092 --topic mykafka
  • larry testing information here!!!//生产者输入消息
  • hahaha kafka MQ testing here!!!//生产者输入消息
  • produce message here //生产者输入消息

再打开一个终端,进入kafka容器(方法同上),运行一个消费者,指定同样的主题

  • bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

这时在生产者输入测试消息,在消费者就可以接收消息了

注意: 0.90版本之后启动消费者的方法: bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning

否则报错:consumer zookeeper is not a recognized option

bash-4.4# bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning Using the ConsoleConsumer with old consumer is deprecated and will be removed in a future major release. Consider using the new consumer by passing [bootstrap-server] instead of [zookeeper].

larry testing information here!!! hahaha kafka MQ testing here!!! produce message here

参考博客:https://blog.csdn.net/qq_35394891/article/details/84349955