目錄
一、部署kafaka、zookeeper
二、測試信息發送與接收
三、kafka進階
一、部署kafaka、zookeeper
請提前安裝docker、docker-compose
安裝docker:docker--安裝docker-ce-CSDN博客
安裝docker-compose:?安裝docker-compose_安裝 docker-compose-CSDN博客
docker-compose部署,建議用docker-compose部署而不是單容器部署,快速便捷。(yml文件:docker部署kafka的方法步驟_docker_腳本之家)
version: '2'
services:zookeeper:image: wurstmeister/zookeepervolumes:- ./data:/dataports:- "2181:2181"kafka:image: wurstmeister/kafkaports:- "9092:9092"environment:KAFKA_ADVERTISED_HOST_NAME:127.0.0.1KAFKA_MESSAGE_MAX_BYTES: 2000000KAFKA_CREATE_TOPICS: "Topic1:1:3,Topic2:1:1:compact"KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181volumes:- ./kafka-logs:/kafka- /var/run/docker.sock:/var/run/docker.sockkafka-manager:image: sheepkiller/kafka-managerports:- 9020:9000environment:ZK_HOSTS: zookeeper:2181
設置容器運行機制為自啟動
#docker update --restart=always 容器名/容器ID
[root@kafka_50 ~]# docker update --restart=always e398ce29cbd2 f0ef33856875 e06af2230915
重啟虛擬機kafka-manage無法啟動,docker logs 容器名,查看容器日志,發現報錯This application is already running (Or delete /kafka-manager-1.3.1.8/RUNNING_PID file).
,提示kafka已經運行或者需要刪除RUNNING_PID文件需要,find命令找并刪除RUNNING_PID文件。
[root@kafka_50 ~]# find / -name RUNNING_PID
/var/lib/docker/overlay2/1ac3b62babe69290c14730892564d317e4dc4c443d298d6804ab20290cb48c80/diff/kafka-manager-1.3.1.8/RUNNING_PID
[root@kafka_50 ~]# rm -rf /var/lib/docker/overlay2/1ac3b62babe69290c14730892564d317e4dc4c443d298d6804ab20290cb48c80/diff/kafka-manager-1.3.1.8/RUNNING_PID
二、測試信息發送與接收
查看容器信息,注意容器名
[root@kafka_50 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e398ce29cbd2 wurstmeister/zookeeper "/bin/sh -c '/usr/sb…" 7 days ago Up About an hour 22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp kafka-zookeeper-1
f0ef33856875 wurstmeister/kafka "start-kafka.sh" 7 days ago Up About an hour 0.0.0.0:9092->9092/tcp kafka-kafka-1
e06af2230915 sheepkiller/kafka-manager "./start-kafka-manag…" 7 days ago Up About an hour 0.0.0.0:9020->9000/tcp kafka-kafka-manager-1
創建名為test_topic的topic主題、生產者
# 進入kafka 容器后,創建topic
# kafka-topics.sh --create --topic <topic_name> --partitions 1 --replication-factor 1 --zookeeper zookeeper:2181[root@kafka_50 ~]# docker exec -it kafka-kafka-1 /bin/bash # 進入kafka 容器bash-5.1# kafka-topics.sh --create --topic test_topic --partitions 1 --replication-factor #創建名為test_topic的主題
WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both. = #警告無需理會,關于".""_"的使用規范
Created topic test_topic. #在test_topic主題下創建生產者
bash-5.1# kafka-console-producer.sh --broker-list localhost:9092 --topic test_topic
>hello #隨便發送測試信息
>hello123
新建一個終端創建消費者
[root@kafka_50 ~]# docker exec -it kafka-kafka-1 /bin/bash#創建消費者
bash-5.1# kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic
hello #成功接收到生成者發送的信息,接收實時數據,歷史數據不會展示
hello123#消費者接收歷史信息參數--from-beginning
bash-5.1# kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test_topic --from-beginning
三、kafka進階
......
參考文檔:
docker 部署kafka-CSDN博客? ?測試信息
docker部署kafka的方法步驟_docker_腳本之家? ?部署yml文件