保姆级教程Docker部署Zookeeper模式的Kafka镜像

news2025/2/11 15:32:37

目录

一、安装Docker及可视化工具

二、Docker部署Zookeeper

三、单节点部署

1、创建挂载目录

2、运行Kafka容器

3、Compose运行Kafka容器

4、查看Kafka运行状态

5、验证生产消费

四、部署可视化工具

1、创建挂载目录

2、Compose运行Kafka-eagle容器

3、查看Kafka-eagle运行状态


一、安装Docker及可视化工具

为了简化安装过程并确保环境一致性,推荐使用 Docker 来本地部署 Kafka。这不仅能够快速启动服务,还能有效解决不同操作系统之间的兼容性问题,采用隔离环境的方式,避免了因环境差异导致的问题。

  • Linux环境安装Docker可参考:Ubuntu上安装 Docker及可视化管理工具
  • Windows环境安装Docker可参考:WSL2中安装Docker—部署Docker Engine方案

二、Docker部署Zookeeper

  • Docker中部署Zookeeper镜像可参考:保姆级教程Docker部署Zookeeper官方镜像

三、单节点部署

1、创建挂载目录

# 创建宿主机kafka挂载目录
sudo mkdir -p /data/docker/kafka/data

# 修改data目录权限
sudo chmod 777 /data/docker/kafka/data

2、运行Kafka容器

# 拉取镜像
sudo docker pull bitnami/kafka:3.4.0

# 运行容器
sudo docker run --privileged=true \
--net=bridge \
-d --name=kafka \
-v /data/docker/kafkat/data:/bitnami/kafka/data \
-p 9092:9092 -p 9093:9093 \
-e LANG=C.UTF-8 \
-e KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
-e KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.9:9092
-e ALLOW_PLAINTEXT_LISTENER=yes
-e BITNAMI_DEBUG=yes
bitnami/kafka:3.4.0

参数解析如下:

参数参数说明
docker run运行 Docker 容器
-d容器将在后台运行,而不是占用当前的终端会话
--privileged=trueDocker会赋予容器几乎与宿主机相同的权限
--net=bridge网络模式配置,默认是bridge,bridge表示使用容器内部配置网络
--name kafka给容器命名为 kafka,以便于管理和引用该容器
-p 9092:9092 -p 9093:9093映射 kafka 的客户端通信端口和控制器端口

-e KAFKA_CFG_ZOOKEEPER_CONNECT=

zookeeper:2181

zookeeper的连接地址

-e KAFKA_CFG_LISTENERS=

PLAINTEXT://:9092,CONTROLLER://:9093

表示Kafka要监听哪些端口,PLAINTEXT://:9092,CONTROLLER://:9093表示本节点作为混合节点,监听本机所有可用网卡的9092和9093端口,其中9092作为客户端通信端口,9093作为控制器端口

-e KAFKA_CFG_ADVERTISED_LISTENERS=

PLAINTEXT://192.168.3.9:9092

配置Kafka的外网地址,需要修改为对应的Kafka的外网地址。
-e ALLOW_PLAINTEXT_LISTENER=yes允许Kafka监听器使用明文传输
-e BITNAMI_DEBUG=yes显示详细报错信息

3、Compose运行Kafka容器

创建docker-compose.yml文件

sudo touch /data/docker/kafka/docker-compose.yml

文件内容如下: 

version: '3'

services:
  kafka:
    image: bitnami/kafka:3.4.0
    container_name: kafka
    ports:
      - "9092:9092"
      - "9093:9093"
    environment:
      - KAFKA_CFG_ZOOKEEPER_CONNECT=192.168.3.9:2181
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.9:9092
      - ALLOW_PLAINTEXT_LISTENER=yes
      - BITNAMI_DEBUG=yes
    volumes:
      - /data/docker/kafka/data:/bitnami/kafka/data
    privileged: true
    network_mode: "bridge"

运行容器

#-f:调用文件,-d:开启守护进程
sudo docker compose -f /data/docker/kafka/docker-compose.yml up -d

4、查看Kafka运行状态

5、验证生产消费

验证步骤如下,分别创建一个生产者和一个消费者,查看消费者是否能够收到生产者生产的消息

# 进入kafka容器内
sudo docker exec -it kafka /bin/bash

# 进入kafka安装目录
cd /opt/bitnami/kafka/bin

# 生产消息
./kafka-console-producer.sh --topic test01 --bootstrap-server localhost:9092

# 消费消息
./kafka-console-consumer.sh --topic test01 --from-beginning --bootstrap-server localhost:9092 --group group01

# 查询主题列表
./kafka-topics.sh --bootstrap-server localhost:9092 --list

# 查询消费组列表
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

 生产消息

消费消息

验证结果表明,kafka部署正常,可正常生产和消费消息

四、部署可视化工具

Zookeeper模式的Kafka推荐使用Kafka Eagle进行可视化管理。Kafka Eagle 是一款开源的 Kafka 监控和管理工具,主要用于监控 Kafka 集群的健康状态、性能指标以及管理主题和消费者组。

1、创建挂载目录

# 创建宿主机kafka-eagle挂载目录
sudo mkdir -p /data/docker/kafka-eagle

2、Compose运行Kafka-eagle容器

创建docker-compose.yml文件

sudo touch /data/docker/kafka-eagle/docker-compose.yml

文件内容如下:

version: '3'
 
services:
  kafka-eagle:
    image: nickzurich/kafka-eagle:3.0.1
    container_name: kafka-eagle
    ports:
      - "8048:8048"
    environment:
      - TZ=Asia/Shanghai
    volumes:
      - /data/docker/kafka-eagle/config:/opt/efak/conf
      - /data/docker/kafka-eagle/data:/hadoop/efak/db
    privileged: true
    network_mode: "bridge"

运行容器

#-f:调用文件,-d:开启守护进程
sudo docker compose -f /data/docker/kafka-eagle/docker-compose.yml up -d

3、查看Kafka-eagle运行状态

http://192.168.3.9:8048

用户名密码:admin/123456

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2295834.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

idea插件开发dom4j报错:SAXParser cannot be cast to class org.xml.sax.XMLReader

手打不易,如果转摘,请注明出处! 注明原文:https://blog.csdn.net/q258523454/article/details/145512328 dom4j报错 idea插件使用到了dom4j依赖,但是报错: I will print the stack trace then carry on…

【Go语言圣经】第八节:Goroutines和Channels

DeepSeek 说 Goroutines 和 Channels 最近非常流行询问DeepSeek某些相关概念或热点的解释,因此在开始系统性地学习《Go语言圣经》之前,我首先向DeepSeek进行了提问。具体的Prompt如下: 有关Golang当中的Goroutines和Channels,我现…

第3章 使用 Vue 脚手架

第3章 使用 Vue 脚手架 3.1 初始化脚手架3.1.1 说明3.1.2. 具体步骤3.1.3 分析脚手架结构1 总结2 细节分析1 配置文件2 src文件1 文件结构分析2 例子 3 public文件4 最终效果 3.2 ref属性3.3 props配置项3.4 mixin混入3.5 插件3.6 scoped样式3.7 Todo-list 案例3.7.1 组件化编码…

XILINX硬件设计-(1)LVDS接口总结

1.LVDS差分信号电路原理 LVDS指的是低压差分信号,是一种电平标准。 差分信号在串行通信中有着非常广泛的应用,典型应用有PCIE中的gen1,gen2,gen3,gen4,gen5,SATA接口,USB接口等。 …

单张照片可生成写实3D头部模型!Adobe提出FaceLift,从单一的人脸图像中重建出360度的头部模型。

FaceLift是Adobe和加州大学默塞德分校推出的单图像到3D头部模型的转换技术,能从单一的人脸图像中重建出360度的头部模型。FaceLift基于两阶段的流程实现:基于扩散的多视图生成模型从单张人脸图像生成一致的侧面和背面视图;生成的视图被输入到GS-LRM重建器中,产出详细的3D高斯表…

【AI】DeepSeek知识类任务和推理能力均表现优秀

2024 年 12 月 26 日,杭州深度求索(DeepSeek AI)发布 DeepSeek-V3 并同步开源,据介绍,DeepSeek-V3 多项评测成绩超越了 Qwen2.5-72B 和 Llama-3.1-405B 等其他开源模型,并在性能上和世界顶尖的闭源模型 GPT…

编程领域的IO模型(BIO,NIO,AIO)

目前对于市面上绝大多数的应用来说,不能实现的业务功能太少了。更多的是对底层细节,性能优化的追求。其中IO就是性能优化中很重要的一环。Redis快,mysql缓冲区存在的意义。都跟IO有着密切关系。IO其实我们都在用,输入输出流这块。…

DeepSeek为何能爆火

摘要:近年来,DeepSeek作为一款新兴的社交媒体应用,迅速在年轻人群体中走红,引发了广泛关注。本文旨在探讨DeepSeek为何能在短时间内爆火,从而为我国社交媒体的发展提供参考。首先,通过文献分析,…

【AIGC】语言模型的发展历程:从统计方法到大规模预训练模型的演化

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: AIGC | ChatGPT 文章目录 💯前言💯语言模型的发展历程:从统计方法到大规模预训练模型的演化1 统计语言模型(Statistical Language Model, SLM):统…

【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战

【04】Java若依vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战 项目背景 本项目经费43000元,需求文档如下,工期25天,目前已经过了8天,时间不多了&#x…

机器学习:朴素贝叶斯分类器

贝叶斯决策论是概率框架下实施决策的基本方法,对分类任务来说,在所有相关概率都已知的理想情形下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。 贝叶斯定理是贝叶斯决策论的基础,描述了如何根据新的证据更新先验概率,贝叶斯定理&…

DeepSeek 大模型每个版本的特点以及运用场景对比

deepseek 网页地址:DeepSeek | 深度求索 1. DeepSeek-V1 发布时间:2024年1月 参数规模:预训练数据量2TB,具体参数未明确公开,推测为数十亿级别 功能特点: 编码能力:支持多种编程语言(如Python、Java、C++),可生成高质量代码框架。 长上下文处理:支持128K上下文窗口,…

【Langchain学习笔记(一)】Langchain介绍

Langchain介绍 Langchain介绍前言1、Langchain 是什么2、为什么要用 Langchain3、Langchain 的核心4、Langchain 的底层原理5、Langchain 的应用场景 Langchain介绍 前言 想象一下,如果你能让聊天机器人不仅仅回答通用问题,还能从你自己的数据库或文件…

VSCode中出现“#include错误,请更新includePath“问题,解决方法

1、出现的问题 在编写C程序时,想引用头文件但是出现如下提示: (1)首先检查要引用的头文件是否存在,位于哪里。 (2)如果头文件存在,在编译时提醒VSCode终端中"#include错误&am…

【HeadFirst系列之HeadFirstJava】第2天之类与对象-拜访对象村

前言 从今日起,陆续分享《HeadFirstJava》的读书笔记,希望能够帮助大家更好的理解Java,提高自己的基础编码能力。 Java是一门面向对象的高级编程语言,常年霸占编程语言排行榜前三。 Java是目前国内的主流开发语言,基本…

MoMask:可将文本描述作为输入并生成相应的高质量人体运动动作

该图展示了 MoMask (一种最先进的人体运动生成模型)生成的运动示例。MoMask 使用文本到运动范式进行操作,其中它将文本描述作为输入并生成相应的高质量人体运动。这种方法确保生成的动作准确反映给定的文本条件,展示了 MoMask 生成…

【Python】元组

个人主页:GUIQU. 归属专栏:Python 文章目录 1. 元组的本质与基础概念1.1 不可变序列的意义1.2 元组与数学概念的联系 2. 元组的创建方式详解2.1 标准创建形式2.2 单元素元组的特殊处理2.3 使用 tuple() 函数进行转换 3. 元组的基本操作深入剖析3.1 索引操…

[RabbitMQ] RabbitMQ常见面试题

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

计算机组成原理 | (四)存储器

🌮🌮🌮宝子们好呀,今天继续更新我的学习笔记,教我计算机组成原理的老师是SDUCS的zrh老师,感谢z老师的教导,接下来我就放上我的手写笔记,供大家学习参考,适合大家预习和复…

基于 GEE 利用 SDWI 指数进行逐月水域面积提取

目录 1 SDWI指数 2 完整代码 3 运行结果 微波遥感具有全天候、全天时工作能力,能穿透云层,不受气象条件和光照水平影响,因此近年来利用微波遥感提取水体信息也备受关注。本文分享使用 Sentinel-1遥感影像通过SDWI指数来进行逐月水域面积计…