基于Docker搭建zookeeper+Kafka单机环境

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

镜像准备

# zookeeper镜像
docker pull wurstmeister/zookeeper
# kafka镜像
docker pull wurstmeister/kafka
# kafka管理镜像
docker pull sheepkiller/kafka-manager

配置信息

# zoo.cfg 
clientPort=2181
dataDir=/data
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=3
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=30

# kafka
//配置分组id
KAFKA_BROKER_ID=1
//开启自动创建主题
KAFKA_AUTO_CREATE_TOPICS_ENABLE=true
//连接zookeeper
KAFKA_ZOOKEEPER_CONNECT=公网ip:2181
//默认内存,调小一点不然启动报错内存溢出
KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"
//配置外网ip访问kafka
KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://公网ip:9092

创建文件路径

mkdir -p /root/zookeeper/data
mkdir -p /root/zookeeper/datalog
mkdir -p /root/zookeeper/conf/   # zoo.cfg文件路径

mkdir -p /root/kafka/logs/kafka-logs

整合启动脚本

# !/bin/bash

echo "zookeeper is starting...."
docker run  --name zookeeper -p 2181:2181 \
--restart always \
-v /root/zookeeper/data:/data \
-v /root/zookeeper/datalog:/datalog  \
-v /root/zookeeper/conf/zoo.cfg:/conf/zoo.cfg \
-e JVMFLAGS="-Xmx256m" \
-d wurstmeister/zookeeper:latest

echo "kafka is starting...."
docker run -d --restart=always --name kafka \
-p 9092:9092 \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_BROKER_ID=0 \
-e KAFKA_HEAP_OPTS="-Xmx256M -Xms128M" \
-e KAFKA_ZOOKEEPER_CONNECT=公网ip:2181 \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://公网ip:9092 \
-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
-v /etc/localtime:/etc/localtime \
-v /root/kafka/logs:/kafka/logs \
-d wurstmeister/kafka:latest 

echo "kafka-manager is starting...."
docker run -d --name kafka-manager -p 9000:9000 \
--link zookeeper:zookeeper \
--link kafka:kafka \
--env ZK_HOSTS=zookeeper:2181 \
--restart=always sheepkiller/kafka-manager

echo "Programs startup completed"
docker ps -a                  

kafka-map图形化管理工具(好用)

图形化管理工具
访问地址:http://服务器IP:9001/
DEFAULT_USERNAME:默认账号admin
DEFAULT_PASSWORD:默认密码admin

docker run -d --name kafka-map \
    -p 9001:8080 \
    -v /opt/kafka-map/data:/usr/local/kafka-map/data \
    -e DEFAULT_USERNAME=admin \
    -e DEFAULT_PASSWORD=admin \
    --restart always dushixiang/kafka-map:latest
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用Docker部署ZookeeperKafka的步骤: 1. 安装DockerDocker Compose 2. 创建Docker Compose文件 在本地目录中创建一个名为docker-compose.yml的文件,并添加以下内容: ``` version: "3" services: zookeeper: image: zookeeper ports: - "2181:2181" environment: ZOO_MY_ID: 1 volumes: - ./data/zookeeper/data:/data - ./data/zookeeper/datalog:/datalog kafka: image: wurstmeister/kafka ports: - "9092:9092" environment: KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_CREATE_TOPICS: "test:1:1" volumes: - ./data/kafka:/kafka depends_on: - zookeeper ``` 此文件定义了两个服务:ZookeeperKafkaZookeeper服务使用官方的Zookeeper镜像,Kafka服务使用wurstmeister的Kafka镜像。 3. 启动服务 在终端中,进入含有docker-compose.yml文件的目录中,然后运行以下命令: ``` docker-compose up -d ``` 此命令将启动ZookeeperKafka服务,并将它们作为Docker容器在后台运行。 4. 验证服务 在浏览器中访问http://localhost:2181/,应该会看到Zookeeper的管理界面。您还可以使用以下命令在Kafka上创建一个测试主题: ``` docker-compose exec kafka \ kafka-topics.sh --create \ --zookeeper zookeeper:2181 \ --replication-factor 1 \ --partitions 1 \ --topic test ``` 使用以下命令在Kafka上发布一条消息: ``` docker-compose exec kafka \ bash -c "echo 'hello, world' | kafka-console-producer.sh --broker-list localhost:9092 --topic test && echo 'Produced 1 message.'" ``` 最后,使用以下命令在Kafka上消费消息: ``` docker-compose exec kafka \ kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning ``` 如果您能够在终端中看到“hello, world”消息,则表明Kafka已经成功运行。 5. 停止服务 在终端中,进入docker-compose.yml文件所在的目录中,并运行以下命令: ``` docker-compose down ``` 此命令将停止并删除ZookeeperKafka容器。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值