docker一键部署zookeeper+kafka容器并创建主题

1 篇文章 0 订阅
1 篇文章 0 订阅

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之类的工具连接并查看

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值