Windows下Docker安装Kafka3+集群

编写 docker-compose.yaml

 主要参照:https://www.cnblogs.com/wangguishe/p/17563274.html

version: "3"

services:

  kafka1:
    image: 'bitnami/kafka:3.4.1'
    container_name: kafka1
    environment:
      - KAFKA_HEAP_OPTS=-Xmx1024m -Xms1024m
      - KAFKA_ENABLE_KRAFT=yes
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.21:19092  # 传递回客户端的元数据,填写宿主机IP地址
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@127.0.0.1:9093
      - KAFKA_BROKER_ID=1
      - KAFKA_CFG_NODE_ID=1
      - KAFKA_KRAFT_CLUSTER_ID=jkUlhzQmQkic54LMxrB1oV
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka1:9093,2@kafka2:9093,3@kafka3:9093
      - ALLOW_PLAINTEXT_LISTENER=yes
    volumes:
      - "/f/kafkadata/apps/kafka/kafka1_data:/bitnami"
    ports:
      - "19092:9092"
    networks:
      kafka:
        aliases:
          - kafka
          
  kafka2:
    image: 'bitnami/kafka:3.4.1'
    container_name: kafka2
    environment:
      - KAFKA_HEAP_OPTS=-Xmx1024m -Xms1024m
      - KAFKA_ENABLE_KRAFT=yes
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.21:29092  # 传递回客户端的元数据,填写宿主机IP地址
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@127.0.0.1:9093
      - KAFKA_BROKER_ID=2
      - KAFKA_CFG_NODE_ID=2
      - KAFKA_KRAFT_CLUSTER_ID=jkUlhzQmQkic54LMxrB1oV
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka1:9093,2@kafka2:9093,3@kafka3:9093
      - ALLOW_PLAINTEXT_LISTENER=yes
    volumes:
      - "/f/kafkadata/apps/kafka/kafka2_data:/bitnami"
    ports:
      - "29092:9092"
    networks:
      kafka:
        aliases:
          - kafka

  kafka3:
    image: 'bitnami/kafka:3.4.1'
    container_name: kafka3
    environment:
      - KAFKA_HEAP_OPTS=-Xmx1024m -Xms1024m
      - KAFKA_ENABLE_KRAFT=yes
      - KAFKA_CFG_PROCESS_ROLES=broker,controller
      - KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
      - KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
      - KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
      - KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.21:39092  # 传递回客户端的元数据,填写宿主机IP地址
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@127.0.0.1:9093
      - KAFKA_BROKER_ID=3
      - KAFKA_CFG_NODE_ID=3
      - KAFKA_KRAFT_CLUSTER_ID=jkUlhzQmQkic54LMxrB1oV
      - KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka1:9093,2@kafka2:9093,3@kafka3:9093
      - ALLOW_PLAINTEXT_LISTENER=yes
    volumes:
      - "/f/kafkadata/apps/kafka/kafka3_data:/bitnami"
    ports:
      - "39092:9092"
    networks:
      kafka:
        aliases:
          - kafka

  kafka-ui:
    image: provectuslabs/kafka-ui:master
    container_name: kafka-ui
    ports:
      - "38080:8080"
    restart: always
    environment:
      - KAFKA_CLUSTERS_0_NAME=local
      - KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka1:9092,kafka2:9092,kafka3:9092
      - KAFKA_CLUSTERS_0_READONLY=true
    depends_on:
      - kafka1
      - kafka2
      - kafka3
    networks:
      kafka:
        aliases:
         - kafka-ui 

networks:
  kafka:
    driver: bridge
    ipam:
      config:
        - subnet: 172.31.16.0/24

注:KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://192.168.3.21:39092 IP一定要改成宿主机IP,不然Kafka-ui访问报错!!!

错误如下:

2024-04-03 20:07:15 2024-04-03 12:07:15,491 ERROR [parallel-3] c.p.k.u.s.StatisticsService: Failed to collect cluster local info
2024-04-03 20:07:15 java.lang.IllegalStateException: Error while creating AdminClient for Cluster local
2024-04-03 20:07:15     at com.provectus.kafka.ui.service.AdminClientServiceImpl.lambda$createAdminClient$5(AdminClientServiceImpl.java:56)
2024-04-03 20:07:15     at reactor.core.publisher.Mono.lambda$onErrorMap$28(Mono.java:3783)
2024-04-03 20:07:15     at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:94)
2024-04-03 20:07:15     at reactor.core.publisher.MonoPeekTerminal$MonoTerminalPeekSubscriber.onError(MonoPeekTerminal.java:258)
2024-04-03 20:07:15     at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onError(FluxMap.java:265)
2024-04-03 20:07:15     at reactor.core.publisher.Operators$MonoSubscriber.onError(Operators.java:1886)
2024-04-03 20:07:15     at reactor.core.publisher.MonoCacheTime$CoordinatorSubscriber.signalCached(MonoCacheTime.java:340)
2024-04-03 20:07:15     at reactor.core.publisher.MonoCacheTime$CoordinatorSubscriber.onError(MonoCacheTime.java:363)
2024-04-03 20:07:15     at reactor.core.publisher.MonoFlatMap$FlatMapMain.onError(MonoFlatMap.java:180)
2024-04-03 20:07:15     at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onError(MonoIgnoreThen.java:278)
2024-04-03 20:07:15     at reactor.core.publisher.MonoPublishOn$PublishOnSubscriber.run(MonoPublishOn.java:187)
2024-04-03 20:07:15     at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:68)
2024-04-03 20:07:15     at reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:28)
2024-04-03 20:07:15     at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
2024-04-03 20:07:15     at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
2024-04-03 20:07:15     at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
2024-04-03 20:07:15     at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
2024-04-03 20:07:15     at java.base/java.lang.Thread.run(Thread.java:833)
2024-04-03 20:07:15 Caused by: org.apache.kafka.common.errors.TimeoutException: Timed out waiting to send the call. Call: listNodes

在docker-compose.yaml所有的目录中执行安装命令:

docker-compose up -d

执行结果: 

[+] Running 12/12
 ✔ kafka1 Pulled                                                                                                 135.4s
 ✔ kafka2 1 layers [⣿]      0B/0B      Pulled                                                                    135.4s
   ✔ e711576d4690 Pull complete                                                                                  117.1s
 ✔ kafka3 Pulled                                                                                                 135.4s
 ✔ kafka-ui 7 layers [⣿⣿⣿⣿⣿⣿⣿]      0B/0B      Pulled                                                             98.4s
   ✔ 0ce1dd7918a4 Pull complete                                                                                    8.2s
   ✔ 396900a6066f Pull complete                                                                                   69.9s
   ✔ ea77a99f32d6 Pull complete                                                                                   12.1s
   ✔ d8a12b986814 Pull complete                                                                                   13.9s
   ✔ ac59f2acb415 Pull complete                                                                                   16.8s
   ✔ a5385df9cb3a Pull complete                                                                                   19.9s
   ✔ 91a81fafb194 Pull complete                                                                                   90.8s
[+] Running 4/5
 - Network kafkadata_kafka  Created                                                                                2.9s
 ✔ Container kafka2         Started                                                                                2.5s
 ✔ Container kafka3         Started                                                                                2.5s
 ✔ Container kafka1         Started                                                                                2.5s
 ✔ Container kafka-ui       Started                                                                                1.4s

在Docker Desktop中查看是否启动成功:

查看启动日志是否报错:

进入控制台查看:

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在s390x架构机器上构建frps/frpc镜像 —— 筑梦之路

源码:GitHub - fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. # 克隆代码git clone https://github.com/fatedier/frp.git# 切换目录cd frp# 构建frps服务端docker build -t frps:s390x -f …

04 Python进阶:MySQL-PyMySQL

什么是 PyMySQL? PyMySQL 是一个用于 Python 的纯 Python MySQL 客户端库,提供了与 MySQL 数据库进行交互的功能。PyMySQL 允许 Python 开发人员连接到 MySQL 数据库服务器,并执行诸如查询、插入、更新和删除等数据库操作。 以下是 PyMySQL …

MySQL查询数据大小

在 MySQL 数据库中,有一个内置的库叫做 information_schema,该数据库中的 tables 表包含了数据库中所有表的基本信息,tables 表结构如下: 下面介绍几个主要关键字段: TABL_SCHEMA:表所属的数据库名TABLE_N…

使用deepspeed,transformers,safetensor中常见的训练精度,共享权重问题

使用deepspeed可能需要注意精度问题 混合精度,LayerNorm 虽然deepspeed有混合精度训练的功能,但是对于网络上各种奇奇怪怪的代码的DIY转化中,他还是很弱小的。它的精度问题,使用deepspeed如果模型中有部分模型使用的是half精度&a…

0基础如何进入IT行业?

前言 俗话说得好“隔行如隔山”,每个人从事自己陌生的行业都是十分艰难的。但现在网上不是流行一种这样的说法吗?360行,行行转IT。我觉得这个说的真的挺对的,因为从我身边认识的同事确实有很多大学并非是计算机科学专业的&#x…

【项目新功能开发篇】开发编码

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过大学刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是&#xff0…

练习 20 Web [HCTF 2018]admin

本题由于GitHub上的源码已经不见了,看了wp也没法复现,只用用保利破解的方式做题。 其他方法还有: Flask Session 伪造 https://blog.csdn.net/qq_46918279/article/details/121294915 暴力破解 打开后看到右上角有菜单栏 然后进入register界…

【THM】Nmap Post Port Scans(后端口扫描)-初级渗透测试

介绍 本房间是 Nmap 系列的最后一个(网络安全简介模块的一部分)。在这个房间中,我们重点关注端口扫描之后的步骤:特别是服务检测、操作系统检测、Nmap脚本引擎和保存扫描结果。 Nmap实时主机发现Nmap基本端口扫描Nmap高级端口扫描Nmap后端口扫描在本系列的第一个房间中,我…

​网络socket编程(二)——面向流的TCP编程及测试(SocketTool)、Wireshark软件使用

目录 一、书接上回(select()函数使用注意事项) 二、面向流(TCP)的socket编程 2.1 TCP服务端编程和测试 2.1.1 TCP服务器原理流程图 2.1.2 TCP服务端编程实战 2.1.3 测试 2.2 TCP客户端编程和测试 三、Wireshark抓包软件的使用 3.1 Wireshark是什…

vue 数据埋点

最近菜鸟做项目,需要做简单的数据埋点,不是企业级的,反正看渡一的视频,企业级特别复杂,包括但不限于:错误收集、点击地方、用户行为…… 菜鸟的需求就是简单收集一下用户的ip、地址、每个界面的访问时间&a…

doccano标注工具|为机器学习建模做数据标注

目录 一、标记流程 二、配置环境 2.1 安装 2.2 运行doccano 三、案例 3.1 创建项目 3.2 上传数据 3.3 定义标签 3.4 添加成员 3.5 开始标注 3.6 导出数据 3.7 导出数据 doccano doccano是开源的数据…

在ssh 工具 Linux screen会话中使用鼠标进行上下滚动

经过几次发现 除xshell外, WindTerm finalshell MobaXterm 都是进入会话后,发现其界面无法滚动屏幕向上查看 如果想要在Linux screen会话中使用鼠标进行上下滚动。必须首先进入该screen的回滚(scrollback模式)才能进行上下滚动 第一步&#xff…

小白理智进入IT行业

职业测试 🔔 0基础请先按照以下步骤做一遍,试试自己的毅力 1️⃣ 请在b站搜索王佩丰vba,然后试着看一下 2️⃣ 看完视频,有两种结果 😭 视频看到一半就终止,代码只会复制粘贴。 🎉 看完全部视…

MHA高可用-解决MySQL主从复制的单点问题

目录 一、MHA的介绍 1.什么是 MHA 2.MHA 的组成 2.1 MHA Node(数据节点) 2.2 MHA Manager(管理节点) 3.MHA 的特点 4. MHA工作原理总结如下: 二、搭建 MySQL MHA 实验环境 …

mongoDB 优化(2)索引

执行计划 语法: db.collection_xxx_t.find({"param":"xxxxxxx"}).explain(executionStats) 感觉这篇文章写得很好,可以参考 MongoDB——索引(单索引,复合索引,索引创建、使用)_mongo …

软考高级架构师:CISC (复杂指令集计算机) 和 RISC (精简指令集计算机)概念和例题

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

开源博客项目Blog .NET Core源码学习(13:App.Hosting项目结构分析-1)

开源博客项目Blog的App.Hosting项目为MVC架构的,主要定义或保存博客网站前台内容显示页面及后台数据管理页面相关的控制器类、页面、js/css/images文件,页面使用基于layui的Razor页面(最早学习本项目就是想学习layui的用法,不过最…

flink1.18源码本地调试环境

01 源码本地调试环境搭建 1. 从github拉取源码创建本地项⽬ https://github.com/apache/flink.git 可以拉取github上官⽅代码 https://github.com/apache/flink.git GitHub - apache/flink: Apache Flink 2. 配置编译环境 ctrlaltshifts (或菜单)打…

UE5启用SteamOS流程

一、安装OnlineSubsystemSteam插件 1、在UE里安装OnlineSubsystemSteam 2、设置默认开始地图 3、设置DefaultEngine.ini文件: 打开项目根目录/Config/DefaultEngine.ini文件 打开官网的配置说明 复制并粘贴到该文件中 4、设置运行模式 5、测试 确保Steam平台已…

Ansible批量操作(上传文件、删除文件指定文件内容、执行sh文件等)

官方网站 https://www.ansible.com/ 一、Ansible 简介 1、Ansible是新出现的自动化运维工具,完全基于Python开发,集合了众多运维工具(puppet、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行…