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

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: kafka1environment:- 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=yesvolumes:- "/f/kafkadata/apps/kafka/kafka1_data:/bitnami"ports:- "19092:9092"networks:kafka:aliases:- kafkakafka2:image: 'bitnami/kafka:3.4.1'container_name: kafka2environment:- 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=yesvolumes:- "/f/kafkadata/apps/kafka/kafka2_data:/bitnami"ports:- "29092:9092"networks:kafka:aliases:- kafkakafka3:image: 'bitnami/kafka:3.4.1'container_name: kafka3environment:- 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=yesvolumes:- "/f/kafkadata/apps/kafka/kafka3_data:/bitnami"ports:- "39092:9092"networks:kafka:aliases:- kafkakafka-ui:image: provectuslabs/kafka-ui:mastercontainer_name: kafka-uiports:- "38080:8080"restart: alwaysenvironment:- KAFKA_CLUSTERS_0_NAME=local- KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS=kafka1:9092,kafka2:9092,kafka3:9092- KAFKA_CLUSTERS_0_READONLY=truedepends_on:- kafka1- kafka2- kafka3networks:kafka:aliases:- kafka-ui networks:kafka:driver: bridgeipam: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中查看是否启动成功:

查看启动日志是否报错:

进入控制台查看:

相关文章:

Windows下Docker安装Kafka3+集群

编写 docker-compose.yaml 主要参照:https://www.cnblogs.com/wangguishe/p/17563274.html version: "3"services:kafka1:image: bitnami/kafka:3.4.1container_name: kafka1environment:- KAFKA_HEAP_OPTS-Xmx1024m -Xms1024m- KAFKA_ENABLE_KRAFTyes- K…...

关于前端资源文件打包问题

可以使用webpack CopyWebpackPlugin插件 CopyWebpackPlugin是一个用于在构建过程中共复制文件和文件夹的Webpack插件。可以帮助我们将特定的文件或文件夹从源目录复制到构建目录,使得这些文件能够在输出的bundle中被访问到。 使用步骤: 1、安装CopyWeb…...

蓝桥杯备考随手记: 常用的字符串排序方式

在Java中,有多种方式可以对字符串进行排序。 下面将详细介绍几种常用的方法: 使用String的compareTo()方法进行排序: String类自带了compareTo()方法用于比较两个字符串的大小关系。可以直接使用该方法在排序时实现字符串的自然排序。 Strin…...

Linux--进程(2)

目录 前言 1. 进程的状态 1.1 进程排队 1.2 运行,阻塞,挂起 2.Linux下具体的进程状态 2.1僵尸和孤儿 3.进程的优先级 4.Linux的调度与切换 前言 这篇继续来学习进程的其它知识 上篇文章:Linux--进程(1)-CS…...

贪心算法思想

求上下界极值: main(){对每一组输入数据计算比值的上下界,更新比值界限的极值全局最大的最小比值和全局最小的最大比值 }Note: V需要满足所有记录,所以取---->全局最大的最小比值和全局最小的最大比值 P9240 [蓝桥杯 2023 省 B] …...

PKI:构建数字安全基石的关键技术

在数字化时代,网络安全已成为我们日常生活和工作的重要组成部分。为了确保数据的完整性、机密性和身份的真实性,公钥基础设施(Public Key Infrastructure,简称PKI)技术应运而生,为构建数字安全基石提供了重…...

vue中实现路由鉴权和不同用户登录

路由鉴权 路由鉴权是指根据用户权限控制用户可以访问哪些路由。 Vue 中实现路由鉴权 Vue 中可以结合 Vuex 和路由守卫来实现路由鉴权。 1. 使用 Vuex 存储用户权限 创建一个 Vuex store 来存储用户权限。在登录成功后,将用户权限存储在 Vuex store 中。在路由守…...

Golang 开发实战day06 - Boolean Conditional

🏆个人专栏 🤺 leetcode 🧗 Leetcode Prime 🏇 Golang20天教程 🚴‍♂️ Java问题收集园地 🌴 成长感悟 欢迎大家观看,不执着于追求顶峰,只享受探索过程 Golang 教程06 - Boolean &a…...

内容多样化的秘密:Kompas.ai如何拓展你的内容形式

在这个信息爆炸的时代,内容多样化已成为品牌吸引和维系广泛受众的关键策略。多样化的内容形式不仅能够迎合不同用户的偏好,还能够提高内容的覆盖面和参与度,从而增强品牌的市场竞争力。本文将深入探讨内容形式多样化的重要性,展示…...

OneFlow深度学习框架介绍

OneFlow 是由中科院计算技术研究所和华为公司联合开发的开源深度学习框架,旨在为用户提供高效、灵活、易用的深度学习解决方案。以下是 OneFlow 深度学习框架的一些特点和介绍: 高性能:OneFlow 针对大规模模型和数据集进行了优化,…...

基于SSM的宠物管理系统

点击以下链接获取源码: https://download.csdn.net/download/qq_64505944/89076676?spm=1001.2014.3001.5503 技术:SSM(Spring+SpringMVC+MyBatis)+LayUI+Echarts技术栈,分页采用pagehelper插件,EasyExcel进行Excel文件的导入导出。 宠物管理系统 1 CHINER-宠物管理系…...

【第十二篇】使用BurpSuite实现CSRF(实战案例)

CSRF存在前提:简单的身份验证只能保证请求是发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的 业务场景:新增、删除、收藏、编辑、保存使用Burp发现CSRF漏洞的过程如下。 1、如图,存在修改邮箱的功能点如下: 2、修改邮箱的流量包,此时邮箱已被修改: 思路:是…...

css 手写返回箭头

因为在开发App时&#xff0c;为了自定义返回栏&#xff0c;返回箭头&#xff0c;一般都用图片&#xff0c;当图片不方便&#xff0c;最好用css样式实现。 逻辑&#xff1a; 画出一个正方形&#xff0c;让它旋转45度&#xff0c;只显示你需要的两个边即可 代码 <!DOCTYPE ht…...

爬虫逆向非对称加密和对称加密案例

注意&#xff01;&#xff01;&#xff01;&#xff01;某XX网站逆向实例仅作为学习案例&#xff0c;禁止其他个人以及团体做谋利用途&#xff01;&#xff01;&#xff01; 案例--aHR0cHM6Ly9jcmVkaXQuaGxqLmdvdi5jbi94eWdzL3l6d2ZzeHF5bWQv 第一步&#xff1a;分析页面、请求…...

大数据基础设施搭建 - Spark

文章目录 一、解压压缩包二、修改配置文件conf/spark-env.sh三、测试提交Spark任务四、Spark on Hive配置4.1 创建hive-site.xml&#xff08;spark/conf目录&#xff09;4.2 查看hive的hive-site.xml配置与3.1配置的是否一致4.3 测试SparkSQL4.3.1 启动SparkSQL客户端&#xff…...

轻松上手Jackjson(珍藏版)

写在前面 虽然现在市面上有很多优秀的json解析库&#xff0c;但 Spring默认采用Jackson解析Json。 本文将通过一系列通俗易懂的代码示例&#xff0c;带你逐步掌握 Jackson 的基础用法、进阶技巧以及在实际项目中的应用场景。 一、Jackjson简介 Jackson 是当前用的比较广泛的&a…...

Pytorch数据结构:Tensor(张量)及其维度和数据类型

文章目录 Tensor基础1.1、Tensor的维度&#xff08;Dimensions&#xff09;1.1.1、举例说明1.1.2、高维Tensor 1.2、.dim()和.size()方法1.2.1、.dim()方法1.2.2、.size()方法1.2.3、.shape属性1.2.3、示例代码1.2.3.1、一维Tensor1.2.3.2、二维Tensor1.2.3.3、三维Tensor 1.3、…...

【THM】Protocols and Servers 2(协议和服务器 2

介绍 协议和服务器房间涵盖了许多协议: 远程登录HTTP协议文件传输协议邮件传输协议POP3IMAP实现这些协议的服务器会受到不同类型的攻击。仅举几例,请考虑: 嗅探攻击(网络数据包捕获)中间人 ( MITM ) 攻击密码攻击(身份验证攻击)漏洞从安全的角度来看,我们始终需要思考…...

阿里云服务器可以干什么?阿里云服务器主要用途是干嘛的?

阿里云服务器可以干嘛&#xff1f;能干啥你还不知道么&#xff01;简单来讲可用来搭建网站、个人博客、企业官网、论坛、电子商务、AI、LLM大语言模型、测试环境等&#xff0c;阿里云百科aliyunbaike.com整理阿里云服务器的用途&#xff1a; 阿里云服务器活动 aliyunbaike.com…...

LeetCode hoot100-22

160. 相交链表给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。这道题几分钟就写出来了。应该是几年前做过&#xff0c;这种思想还能一直记得。所以算法题是不会白做的。 我的…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

设计模式和设计原则回顾

设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据

微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列&#xff0c;以便知晓哪些列包含有价值的数据&#xff0c;…...