kafka-deploy.sh
#!/bin/bash
#本机IP(Ubuntu系统)
LocalIP=`cat /etc/network/interfaces|grep address|awk '{print $2}'`
#zookeeper容器名
ZookeeperName=beta-zookeeper
#kafka容器名
KafkaName=beta-kafka
echo "启动容器"
docker run -d --name ${ZookeeperName} -p 2181:2181 -t -v /etc/localtime:/etc/localtime wurstmeister/zookeeper
docker run --name ${KafkaName} \
-p 9092:9092 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_ZOOKEEPER_CONNECT=${LocalIP}:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://${LocalIP}:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-v /etc/localtime:/etc/localtime \
-d wurstmeister/kafka
sleep 3
echo "显示启动情况"
docker ps | grep ${ZookeeperName}
docker ps | grep ${KafkaName}
sleep 3
echo "进入kafka容器并创建主题"
docker exec -it ${KafkaName} /opt/kafka/bin/kafka-topics.sh --create --zookeeper ${LocalIP}:2181 --replication-factor 1 --partitions 1 --topic test1
echo "创建主题完成"
kafka-deploy.sh
#!/bin/bash
#检查是否更改过容器名
if [ -e "kafka-deploy.sh" ];then
ZookeeperName=`cat kafka-deploy.sh |grep ZookeeperName=|awk -F= '{print $2}'`
KafkaName=`cat kafka-deploy.sh |grep KafkaName=|awk -F= '{print $2}'`
else
#默认值
ZookeeperName=beta-zookeeper
KafkaName=beta-kafka
fi
echo "开始清除如下容器:"
echo ${ZookeeperName}
echo ${KafkaName}
echo 5
sleep 2
echo 4
sleep 2
echo 3
sleep 2
echo 2
sleep 2
echo 1
docker stop ${ZookeeperName}
docker rm ${ZookeeperName}
docker stop ${KafkaName}
docker rm ${KafkaName}
生产者和消费者测试
#进入容器
docker exec beta-kafka bash
cd /opt/kafka/bin/
#创建主题(如使用上方脚本可省去创建test1主题这一步)
./kafka-topics.sh --create --zookeeper 192.168.20.248:2181 --replication-factor 1 --partitions 1 --topic test1
#模拟生产者发送消息
./kafka-console-producer.sh --broker-list 192.168.20.248:9092 --topic test1
#模拟消费者接收消息
./kafka-console-consumer.sh --bootstrap-server 192.168.20.248:9092 --topic test1 --from-beginning
也可以使用kafka-tool之类的工具连接并查看