使用Docker 安装 Kafka
最近工作需要用到kafka相关的知识,但是之前没有学过,所以想着在自己的服务器上面搭建一个单节点的kafka消息队列,来做测试,学习,记录一下搭建的简单过程
首先你需要有一台linux的机器,这个不多做赘述。都知道 kafka需要zookeeper,所以需要先运行zookeeper。
一、Docker 安装 zookeeper
1、我们使用docker来安装,首先需要一个zookeeper的镜像,使用如下命令拉取相关镜像。
docker pull wurstmeister/zookeeper
2、然后就是启动这个zookeeper容器
docker run -d --name zookeeper -p 2181:2181 -v /home/zookeeper:/etc/localtime wurstmeister/zookeeper
–name 给容器起个别名
-p 映射端口,-v 映射目录,这两个比较常用
注释:
docker inspect 容器ID
:可查看容器信息可以得到容器的IP,最后启动之后,d_zookeeper的ip是172.17.0.3
二、Docker 安装kafka
对于安装kafka也是,先拉取镜像,然后使用镜像启动容器。
1、拉取kafka 镜像
docker pull wurstmeister/kafka
2、启动Kafka容器
docker run -d --name kafka -p 9092:9092 -v /home/kafka:/home/kafka -e KAFKA_BROKER_ID=0 -e KAFKA_ZOOKEEPER_CONNECT=81.70.253.xxx:2181 -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://81.70.253.xxx:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -t wurstmeister/kafka
简单阐述一下参数含义:
-e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
-e KAFKA_ZOOKEEPER_CONNECT=81.70.253.xxx:2181/kafka 配置zookeeper管理kafka的路径81.70.253.xxx:2181/kafka, 这里的81.70.253.xxx 是你服务器的ip,不是zookeeper容器的ip
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://81.70.253.xxx:9092 把kafka的地址端口注册给zookeeper
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口
-v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间
需要运行的话,只需要修改里面的ip 为自己服务器的ip就可以。
三、测试连通性
1、启动生产者(需要 切换到kafka的bin目录,/opt/kafka_2.13-2.7.0/bin,没有topic,会自动创建一个topic)
./kafka-console-producer.sh --broker-list localhost:9092 --topic test
2、发送如下消息:
{"datas":[{"channel":"","metric":"temperature","producer":"ijinus","sn":"IJA0101-00002245","time":"1543207156000","value":"80"}],"ver":"1.0"}
3、启动一个消费者消费topic里面的内容:
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning