首页 > 其他分享 >使用docker-compose部署kafka

使用docker-compose部署kafka

时间:2022-12-23 17:34:36浏览次数:38  
标签:compose -- zookeeper kafka topic mytest docker

1、拉取镜像

docker pull bitnami/zookeeper:latest
docker pull bitnami/kafka:latest

2、下载docker-compose

curl -L https://get.daocloud.io/docker/compose/releases/download/v2.14.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

3、编写docker-compose文件

version: "3"
services:
zookeeper: #zk服务名称
image: 'bitnami/zookeeper:latest' #zk镜像名称
restart: 'always'
ports:
- '2181:2181' #映射端口
volumes:
- /mnt/ms/zookeeper/data:/bitnami/zookeeper/data #挂载数据到宿主机
environment:
- ALLOW_ANONYMOUS_LOGIN=yes #启用无密码访问功能
kafka: #服务名称
image: 'bitnami/kafka:latest' #kafka镜像
restart: 'always' #容器异常停止,自动重启
ports:
- '9092:9092' #映射端口
volumes:
- /mnt/ms/kafka/data:/bitnami/kafka #映射kafka消费数据和配置文件
environment:
- KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181 #kafka链接的zookeeper地址
- ALLOW_PLAINTEXT_LISTENER=yes #允许使用PLAINTEXT侦听器
- KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CLIENT:PLAINTEXT,EXTERNAL:PLAINTEXT #监听器名称和安全协议的映射配置。每个监听器的名称只能在map中出现一次。
- KAFKA_CFG_LISTENERS=CLIENT://:9092,EXTERNAL://:9093 #kafka监听地址
- KAFKA_CFG_ADVERTISED_LISTENERS=CLIENT://192.168.1.1(kafka_ip):9092,EXTERNAL://localhost:9093 #提供外部调用
- KAFKA_CFG_INTER_BROKER_LISTENER_NAME=CLIENT #用于配置broker之间通信使用的监听器名称
depends_on: #kafka运行依赖zookeeper,所以先启动zookeeper
- zookeeper

4、启动服务

启动:
docker-compose up -d
停止:
docker-compose down
检查状态:
docker-compose ps

5、备份zookeeper数据

date=`date +%Y%m%d`
cp -r /mnt/ms/zookeeper/data /mnt/ms/backup/zookeeper_${date}
cd /mnt/ms/zookeeper/data
tar -zcvf zookeeper_${date}.tar.gz zookeeper_${date} && rm -rf zookeeper_${date}
find /mnt/ms/backup/ -name "*.gz" -mtime +7 |xargs rm -rf

6、常用命令

进入kafka容器
docker exec -it kafka-kafka-1 bash
找到kafka提供的脚本
cd /opt/bitnami/kafka/bin
创建tioic
#解释:创建1个副本3个分区的topic,命名为mytest
./kafka-topics.sh --zookeeper master:2181 --create --topic mytest --replication-factor 1 --partitions 3
查看topic分区
./kafka-topics.sh --zookeeper master:2181 --describe --topic mytest
Topic:mytest PartitionCount:3 ReplicationFactor:1 Configs:
Topic: mytest Partition: 0 Leader: 0 Replicas: 0 Isr: 0
Topic: mytest Partition: 1 Leader: 0 Replicas: 0 Isr: 0
Topic: mytest Partition: 2 Leader: 0 Replicas: 0 Isr: 0

实验需要打开两个窗口,一个启动生产者一个启动消费者,方便观察
模拟创建一个生产者(producer)来生成消息,创建一个消费者(consumer)去消费消息
创建生产者
./kafka-console-producer.sh --broker-list kafka:9092 --topic mytest
#创建消费者
#解释:生产者会把消息丢进topic,我们在topic:mytest中创建一个命名为group_mytes的消费组来消费数据
./kafka-console-consumer.sh --bootstrap-server kafka:9092 --topic mytest --consumer-property group.id=group_mytes
#此时在生产者端输入消息,会在消费者端查看到对应消费内容。

#查看消息积压
./kafka-consumer-groups.sh --describe --bootstrap-server kafka:9092 --group group_mytes
Group Topic Pid Offset logSize Lag Owner
group_mytest mytest 0 3 3 0 none
group_mytest mytest 1 2 2 0 none
group_mytest mytest 2 3 3 0 none
#解释:logSize表示消息数量,Offset表示已经消费的消息,Lag代表积压的消息,消息出现积压可以同时调整分区数量和消费者数量来增加消费能力,其中分区数和消费者数量保持一至。

标签:compose,--,zookeeper,kafka,topic,mytest,docker
From: https://blog.51cto.com/u_14458428/5965943

相关文章

  • 折腾 Docker
    如果Windows主机无法ping通Docker容器中CentOS的IP地址,可能是因为容器和主机之间的网络设置问题。你可以尝试以下步骤来解决这个问题:查看Docker容器的网络模......
  • 深入理解Kafka核心设计-日志存储
    一、文件系统中存储方式1.1树形结构图1.2目录结构【分而治之】一个topic有多个分区,一个分区就是一个Log(文件夹),文件夹命名方式:<topic>-<partition>如创建订单topic:CRE......
  • 实验2:Docker实验
    云计算技术与应用    石家庄铁道大学信息学院 实验2:Docker实验本次实验属于验证型实验,通过本次实验学生将掌握以下内容:1、了解Docker服务安装;2、掌握Docker镜......
  • docker swarm 服务/容器编排
    十年河东,十年河西,莫欺少年穷学无止境,精益求精根据上节搭建的集群环境:dockerswarm集群环境搭建【一主二从】本节来进行服务/容器编排1、在master管理者节点拉取nginx......
  • docker容器的使用
    获取镜像通过在终端输入指令获取镜像dockerpullubuntu  查看镜像查看镜像是否存在dockerimages 运行容器在终端输入指令启动容器dockerrun-itub......
  • 懂了!VMware/KVM/Docker原来是这么回事儿
    原文链接云计算时代,计算资源如同小马哥当年所言,已经成为了互联网上的水和电。 虚拟主机、web服务器、数据库、对象存储等等各种服务我们都可以通过各种各样的云平台来......
  • docker swarm 集群环境搭建【一主二从】
    十年河东,十年河西,莫欺少年穷学无止境,精益求精前提条件:准备三台虚拟机,分别安装docker并将docker设置为开机自启动,并执行如下操作设置主机名设置192.168.182.128的主......
  • Docker+Jenkins+Gitee+Maven构建后台jar包后通过命令备份、替换、重启docker-compose
    场景docker-compose入门以及部署SpringBoot+Vue+Redis+Mysql(前后端分离项目)以若依前后端分离版为例:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/12837......
  • docker安装elasticsearch时max virtual memory areas vm.max_count(65530) is too low
    利用docker-compose安装elasticsearch时启动失败的异常解决maxvirtualmemoryareasvm.max_count(65530)istoolow...一.异常现象我在利用docker-compose进行elasticse......
  • ubuntu如何安装composer
    >wgethttps://getcomposer.org/composer.phar>mvcomposer.pharcomposer>chmod+xcomposer全局:sudomvcomposer/usr/local/bin测试:composer--version ......