当前位置: 首页 > news >正文

Docker安装Kafka(内含zookeeper)

因为kafka是基于zookeeper做的,所以必须要有zookeeper

一、Zookeeper

1.拉取镜像

docker pull zookeeper:3.7.0

2.运行

docker run --restart=always \
  --log-driver json-file \
  --log-opt max-size=100m \
  --log-opt max-file=2  \
  --name zookeeper -p 2181:2181 \
  -v /etc/localtime:/etc/localtime:ro \
  -d zookeeper:3.7.0

3.检查是否运行成功

在这里插入图片描述

二、Kafka

1.拉取镜像

wurstmeister是一个官方的镜像仓库直接拉失败了,所以包了一层,要是还不行,去阿里弄个镜像加速器配上

docker pull wurstmeister/kafka:3.4.0

就是这里
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
在这里插入图片描述

2. 创建挂载目录好日志

2.1创建挂载目录

mkdir -p /home/kafka/{data,config}

2.2创建日志

  1. log4j.properties
vim /home/kafka/config/log4j.properties

写入并保存

# 设置根记录器级别为INFO,并指定两个追加器stdout和kafkaAppender
log4j.rootLogger=INFO, stdout, kafkaAppender

# 控制台输出配置
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n

# 文件输出配置
log4j.appender.kafkaAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.kafkaAppender.DatePattern=.yyyy-MM-dd
log4j.appender.kafkaAppender.File=/var/log/kafka/kafka.log  # 确保此路径存在且可写
log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n

# 设置Kafka相关类别的日志级别
log4j.logger.kafka=INFO, kafkaAppender
log4j.additivity.kafka=false  # 是否继承父logger的appender

# Zookeeper客户端日志级别
log4j.logger.org.I0Itec.zkclient.ZkClient=INFO
log4j.logger.org.apache.zookeeper=INFO

# 请求通道日志级别
log4j.logger.kafka.network.RequestChannel$=WARN
log4j.logger.kafka.request.logger=WARN, kafkaAppender
log4j.additivity.kafka.request.logger=false
  1. tools-log4j.properties
vim /home/kafka/config/tools-log4j.properties

写入保存

log4j.rootLogger=INFO, stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n

3.启动

注意:192.168.101.129这个地址需要替换成你自己的服务器IP

docker run \
  --log-driver json-file \
  --log-opt max-size=100m \
  --log-opt max-file=2 \
  --name kafka -p 9092:9092 \
  -e KAFKA_BROKER_ID=0 \
  -e KAFKA_ZOOKEEPER_CONNECT=192.168.101.129:2181/kafka \
  -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.101.129:9092 \
  -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 \
  -e ALLOW_PLAINTEXT_LISTENER=yes \
  -e KAFKA_HEAP_OPTS='-Xms512M -Xmx4G' \
  -v /home/kafka/data:/var/lib/kafka/data \
  -v /home/kafka/config:/opt/kafka/config \
  -v /etc/localtime:/etc/localtime:ro \
  -d wurstmeister/kafka:latest

4.测一下

1.进去

docker exec -it kafka /bin/bash

2.创建测试主题

  1. 进入kafka
docker exec -it kafka /bin/bash
  1. 创建主题
kafka-topics.sh --create --topic test-topic --bootstrap-server 192.168.101.129:9092 --partitions 1 --replication-factor 1
  1. 查看你刚才建立的主题
kafka-topics.sh --list --bootstrap-server 192.168.101.129:9092

在这里插入图片描述

相关文章:

  • 第二章:盒模型的奥秘
  • 每天一道算法题【蓝桥杯】【使用最小花费爬楼梯】
  • 扩散 Transformer 策略:用于通才视觉-语言-动作学习的规模化扩散 Transformer
  • 51c大模型~合集10
  • 《使用 Python Flask + MySQL + ECharts 构建销售数据看板》实战案例笔记
  • osg安装编译第三方,完整详细过程。 libtiff/tif config.vc.hdoes not exist
  • GStreamer —— 2.17、Windows下Qt加载GStreamer库后运行 - “播放教程 5:色彩平衡“(附:完整源码)
  • 基于Debian12的SVN和Trac自动安装部署脚本
  • upload-labs-master通关攻略(17~19)
  • RSA算法:开启现代密码学的数学之钥
  • SpringMVC中有关请求参数的问题(映射路径,传递不同的参数)
  • 前端小食堂 | Day13 - Vue.js 进阶烹饪术
  • RISC-V特权模式与寄存器
  • 计网面试准备
  • Vue的生命周期
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_conf_param
  • FreeRTOS(7)队列集
  • Redis 主从复制详解:实现高可用与数据备份
  • 【MySQL - 表的内外连接】
  • 【13】单片机编程核心技巧:乘法运算
  • 北约年度报告渲染所谓“中国核威胁”,国防部回应
  • 花20万骑自行车?CityRide带火“骑行经济”
  • 中俄领导人将讨论从俄罗斯经蒙古至中国天然气管道项目?外交部回应
  • 甘怀真:天下是神域,不是全世界
  • 巴基斯坦外交部:印度侵略行径侵犯巴主权
  • 南方地区强降雨或致部分河流发生超警洪水,水利部部署防范