docker安装kafka和kafka-console-ui
3、安装kafka
https://blog.csdn.net/m0_64210833/article/details/134199061
kafka依赖Zookeeper,当然也可以用内置的kraft。
安装前提条件
1.安装Zookeeper
1.1运行ZooKeeper容器
2.运行Kafka容器
2.1启动Kafka容器
3.验证
3.1进入Kafka容器
3.2查看容器状态
3.3查看容器日志
3.4重新启动容器
3.5创建测试主题
3.1、拉取Zookeeper镜像
docker pull bitnami/zookeeper
3.2、运行ZooKeeper容器
使用以下命令运行一个ZooKeeper的Docker容器:
docker run -d --restart=always -e ALLOW_ANONYMOUS_LOGIN=yes --log-driver json-file --log-opt max-size=100m --log-opt max-file=2 --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime bitnami/zookeeper:latest
这个命令会启动一个名为“zookeeper”的Docker容器,并且映射它的2181端口到你的机器的2181端口。
3.3、拉取Kafka镜像
接下来,你需要运行Kafka的Docker容器,并且配置它连接到你刚刚启动的ZooKeeper实例。如果你还没有Kafka的Docker镜像,你可以使用如下命令拉取:
docker pull bitnami/kafka
3.4、启动kafka容器
docker run -d --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=150.158.119.225:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://150.158.119.225:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime bitnami/kafka:latest
docker run: 这是Docker命令的起始点,用于创建和运行一个新的容器。-d: 这个选项告诉Docker在后台(detached mode)运行容器,这样容器将在后台运行而不会占用当前终端。--log-driver json-file: 这个选项指定了容器的日志驱动程序。在这种情况下,它使用json-file驱动程序,将容器的日志输出到文件中。--log-opt max-size=100m: 这个选项设置日志文件的最大大小为100兆字节(MB)。当日志文件大小达到该限制时,Docker将创建一个新的日志文件。--log-opt max-file=2: 这个选项设置日志文件的最大数量为2个。当达到最大数量时,Docker会循环使用这些日志文件,最早的日志文件会被覆盖。--name kafka: 这个选项为容器指定一个名称"kafka",以便后续对容器进行引用。-p 9092:9092: 这个选项将主机的端口9092映射到容器的端口9092。Kafka通常使用9092端口进行客户端连接。-e KAFKA_BROKER_ID=0: 这个选项设置Kafka的Broker ID为0。每个Kafka Broker都应具有唯一的Broker ID。-e KAFKA_ZOOKEEPER_CONNECT=150.158.119:2181/kafka: 这个选项设置Kafka连接到的Zookeeper的地址和端口。在这种情况下,Kafka将连接到地址为150.158.119的Zookeeper实例的2181端口,并使用"/kafka"作为Kafka在Zookeeper中的根目录。-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://150.158.119:9092: 这个选项设置Kafka的广告侦听器(advertised listeners)。它指定Kafka广告的监听器的地址和端口。在这种情况下,Kafka将使用地址为150.158.119的主机的9092端口作为广告的监听地址。-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092: 这个选项设置Kafka的监听器。它指定Kafka监听的地址和端口。在这种情况下,Kafka将监听所有可用的网络接口(0.0.0.0)上的9092端口。-v /etc/localtime:/etc/localtime: 这个选项将主机系统的时区设置挂载到容器内的/etc/localtime文件,以确保容器和主机具有相同的时区设置。bitnami/kafka:latest: 这是要使用的Docker镜像的名称和标签。在这种情况下,它使用Bitnami提供的Kafka镜像,并使用"latest"标签来获取最新的版本。参考网址https://www.jianshu.com/p/26495e334613其实kafka客户端访问kafka是分两步走:
第一步,不管什么方式,客户端只要能连接到KAFKA_LISTENERS标识的地址,成功完成必要的认证后,就可以得到一个brokers返回地址。
第二步,通过返回的brokers重新建立和kafka的连接,生成producer/consumer。这个返回的brokers就是KAFKA_ADVERTISED_LISTENERS的值。
注意,如果要连外网,需要修改
–env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092
localhost改为 当前公网ip 118.31.250.73 (当前ali买的服务器的的公网IP)
别用我的ip
3.5、进入kafka容器
docker exec -it kafka /bin/bashcd /opt/bitnami/kafka/bin
注意:可能出现报错:Error response from daemon: Container 62b9c056c0aa9d6ba917690abae1c6fe16c750a96fe428cdaa43f4c692a146ca is not running
说明kafka并没有运行。
3.6、创建测试主题
在Kafka容器中,运行以下命令创建一个测试主题:
./kafka-topics.sh --create --topic test-kafka --bootstrap-server localhost:9092
3.7、使用生产者发送消息
打开一个生产者,来输入测试主题的消息(也需要进入kafka容器哈):
./kafka-console-producer.sh --topic test-kafka --bootstrap-server localhost:9092
然后你可以输入一些消息(比如输入hello按下enter)。
3.8、使用消费者接收消息
在另一个终端窗口中,打开一个消费者来读取测试主题的消息(也需要进入kafka容器哈):
./kafka-console-consumer.sh --topic test-kafka --from-beginning --bootstrap-server localhost:9092
如果一切设置正确,你应该能在消费者终端中看到你在生产者终端输入的消息。
这就完成了使用Docker运行ZooKeeper和Kafka,并进行基本验证的过程。
在生产者页面输入测试内容:
{"id":1,"name":"arvin"}
4、安装Kafka图形界面
待更新。
kafka-console-ui
https://github.com/xxd763795151/kafka-console-ui
4.1、拉取kafka-console-ui镜像
docker pull wdkang/kafka-console-ui
4.2、启动服务并挂载,持久化
docker run --name kafka-consolo-ui -d -p 7766:7766 -v $PWD/data:/app/data -v $PWD/log:/app/log wdkang/kafka-console-ui
4.3、访问
http://外网ip:7766
http://150.158.119.225:7766
相关文章:
docker安装kafka和kafka-console-ui
3、安装kafka https://blog.csdn.net/m0_64210833/article/details/134199061 kafka依赖Zookeeper,当然也可以用内置的kraft。 安装前提条件 1.安装Zookeeper 1.1运行ZooKeeper容器 2.运行Kafka容器 2.1启动Kafka容器 3.验证 3.1进入Kafka容器 3.2查看容器状态 3.3查…...
Linux:gitlab创建组,创建用户,创建项目
创建组和项目 让后可以在组里创建一个个仓库 创建成员 我创建个成员再把他分配进这个组里 进入管理员 密码等会我们创建完用户再去配置密码 Regular是普通的用户,只可以正常去访问指定规则的项目 而下面的administrator就是管理员,可以随便进项目&…...
相机选型介绍
摄影测量中,相机是非常重要的角色,合适的相机产出合适的图像,得到合适的重建精度,这是相机的重要性。 您也许第一反应是,摄影测量所需的理想相机,是有着超高分辨率的相机,但事实可能并非如此&a…...
SQL创建数据库
SQL,全称结构化查询语言(Structured Query Language),是一种用于管理关系型数据库的标准语言。通过 SQL,我们可以创建、查询、更新和删除数据库中的数据。今天,我们将学习使用SQL创建数据库。本文的目标是让读者了解如何使用SQL创…...
读书笔记-增强型分析:AI驱动的数据分析、业务决策与案例实践
目录 前言 运用人工智能技术,可以使人类社会变得更美好。人们总是期待产品更适合、服务更贴心、生活更便利。在实践中,技术给企业赋能,企业通过优质的产品和服务满足社会,提升人类福祉。很多金融企业已经开始尝试向潜在客户推送…...
NXP实战笔记(十):S32K3xx基于RTD-SDK在S32DS上配置CAN通信
目录 1、概述 2、SDK配置 2.1、配置目标 2.2、CAN配置 3、代码实现 4、测试结果 1、概述 S32K3xx的FlexCan与之前的S32K1xx很相似,Can的中断掩码寄存器(IMASK3)与中断标志位寄存器(IFLAG3)依赖于邮箱数。 FlexCan配置实例如下 FlexCan的整体图示如下 Protocol Engine…...
纳斯达克大屏-投放需要知道的几个条件-大舍传媒
引言 随着移动互联网的快速发展,数字广告媒体广告越来越受到企业的关注。纳斯达克大屏作为全球最大的数字媒体广告投放平台之一,拥有广泛的受众和优质的媒体资源,吸引了众多企业的眼球。要想在纳斯达克大屏上投放广告,企业需要了…...
python-可视化篇-简单-条形图输出主要省份GDP排名情况
条形图输出主要省份GDP排名情况 代码 gdp广东:97277.77:107671.07 江苏:92595.40:99631.52 山东:76469.70:71067.5 浙江:56197.00:62353 河南:48055.90:54259.2 四川:40678.10:46615.82 湖北:39366.60:45828.31 湖南:36425.78:39752.12 河北:36010.30:35104.5 福建:35804.04:…...
Sora - 探索AI视频模型的无限可能-官方报告解读与思考
一、引言 最近SORA火爆刷屏,我也忍不住找来官方报告分析了一下,本文将深入探讨OpenAI最新发布的Sora模型。Sora模型不仅仅是一个视频生成器,它代表了一种全新的数据驱动物理引擎,能够在虚拟世界中模拟现实世界的复杂现象。本文将重…...
算法提升——LeetCode第385场周赛总结
题目 统计前后缀下标对 I 给你一个下标从0开始的字符串数组words。 定义一个布尔函数isPrefixAndSuffix,它接受两个字符串参数str1和str2: 当str1同时是str2的前缀(prefix)和后缀(suffix)时,…...
【README 小技巧】在项目README.md 中展示发布到maven 仓库版本
在项目README.md 中展示发不到nexus 的快照版本 <p align"center"><a target"_blank" href"https://search.maven.org/search?qwu-lazy-cloud-network%20wu-lazy-cloud-network"><img src"https://img-home.csdnimg.cn/ima…...
R语言【ClusterR】——KMeans_rcpp()
Package ClusterR version 1.3.2 Description 使用RcppArmadillo计算k-means。 Usage KMeans_rcpp(data,clusters,num_init = 1,max_iters = 100,initializer = "kmeans++",fuzzy = FALSE,verbose = FALSE,CENTROIDS = NULL,tol = 1e-04,tol_optimal_init = 0.3,se…...
7-liunx服务器规范
目录 概况liunx日志liunx系统日志syslog函数openlog 可以改变syslog默认输出方式 ,进一步结构化 用户信息进程间的关系会话ps命令查看进程关系 系统资源限制改变工作目录和根目录服务器程序后台话 概况 liunx服务器上有很多细节需要注意 ,这些细节很重要…...
java序列化之Jackson
当涉及到在Java中进行JSON序列化和反序列化时,Jackson和Gson是两个最常用的库。它们都提供了强大的功能来处理JSON数据,但在某些方面有一些不同之处。 Jackson Jackson 是一个功能强大且灵活的 JSON 处理库,由 FasterXML 维护。以下是 Jackson 的一些特点 强大的功能 Ja…...
服务区智慧公厕
在如今追求智能化、便捷化的社会背景下,高速公路服务区智慧公厕正成为人们关注的焦点。作为高速公路上的必要设施,公厕的提升已经不再局限于简单的清洁卫生,而是更多地涉及到智能化、舒适度和用户体验。本文以智慧公厕源头厂家广州中期科技有…...
mysql数据库 - 统诉
1、DDL - 数据库操作 show databases; create database 数据库名 use 数据库名 select database() drop database 数据库名 2、DDL- 表操作 show tables; create table desc 表名 show create table 表名 alter table 表名 add/modify/change/rename drop table 表名 3、DML …...
Python入门必学:单引号、双引号与三引号的差异与应用
Python入门必学:单引号、双引号与三引号的差异与应用 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 👈 希望得…...
spring缓存的使用
Spring缓存使用 缓存注解 对于Spring,缓存组件例如EhCache是可拔插的,而缓存注解是通用的。 Cacheable 标记在方法或者类上,标识该方法或类支持缓存。Spring调用注解标识方法后会将返回值缓存到redis,以保证下次同条件调用该方…...
交换整数的二进制奇偶位
题目:写一个宏,可以将一个整数的二进制位的奇数位和偶数位交换。 假设我们举例:10 那么他的二进制就是:00000000 00000000 00000000 00001010 交换以后组成的新的数就是 5 怎么用写这个宏呢? 1.分别拿出奇数位和偶数位…...
在做了frp的实验室服务器不同端口间传输文件
背景 实验室有两台服务器,使用的是一个IP,两个端口,给人看上去是一台服务器的两个端口,实际是两台服务器。 现在我需要从一个端口传输一个文件夹到另外一个端口,实际上是从一个机器传输到另外一个机器。 操作 在两台…...
GLM-4.1V-9B-Base成本优化指南:GPU显存管理与推理性能调优
GLM-4.1V-9B-Base成本优化指南:GPU显存管理与推理性能调优 1. 为什么需要关注大模型推理成本 大模型在带来强大能力的同时,也伴随着高昂的GPU算力成本。GLM-4.1V-9B-Base作为一款9B参数量的视觉语言大模型,在实际部署中常常面临显存不足、推…...
幻兽帕鲁启动提示 msvcp140.dll 丢失怎么办?2026最新解决办
心问题: 在 Steam 或其他平台启动《幻兽帕鲁》(Palworld)时,系统弹出“由于找不到 msvcp140.dll,无法继续执行代码”的错误提示,导致游戏无法进入。 简短回答: 幻兽帕鲁 msvcp140.dll 报错的主…...
【QT】-- QT操作数据库
前言: Qt是C一个开发框架,具有跨平台特性。这篇是作者大二学习的时候做的笔记,有可能有错误,请各位批评指正。这篇记录QT操作数据库。欢迎大家收藏 关注,作者将会持续更新。 文章目录Qt 操作数据库QSqlDatabase数据库…...
0基础SEO优化的关键点有哪些
0基础SEO优化的关键点有哪些 在互联网时代,SEO(搜索引擎优化)已经成为了每一个网站运营者必须掌握的一项技能。特别是对于0基础的SEO优化者来说,这是一条充满挑战但也充满机遇的道路。0基础SEO优化的关键点有哪些呢?本…...
车载Android Auto兼容性开发全链路(车规级Java SDK集成手册)
第一章:车载Android Auto兼容性开发全链路概览Android Auto 是 Google 提供的车载信息娱乐系统集成框架,其兼容性开发并非仅限于应用层适配,而是一条横跨设备端、车机系统、认证流程与用户交互的完整技术链路。开发者需同步关注 Android 应用…...
嵌入式开发必知:原码、反码与补码详解
1. 为什么嵌入式开发必须掌握原码、反码和补码作为一名在嵌入式领域摸爬滚打多年的工程师,我见过太多因为不理解底层数据表示而导致的诡异bug。记得刚入行时,我调试一个温度传感器项目,当温度低于零度时,读取的数值总是偏差127度。…...
告别重复编码:用快马ai自动生成c语言基础工具模块提升效率
告别重复编码:用快马AI自动生成C语言基础工具模块提升效率 在C语言开发中,我们经常需要重复编写一些基础工具模块,比如安全的字符串输入、动态数组管理、日志记录等功能。这些代码虽然不复杂,但每次都从头开始写确实很浪费时间。…...
阿里千问Qwen3.5-Omni:全模态大模型的新王者
Qwen3.5-Omni:全模态能力的新巅峰3月30日,阿里发布的千问新一代全模态大模型Qwen3.5-Omni,在音视频理解、识别、交互等215项任务中取得SOTA(性能最佳),超越Gemini-3.1 Pro,成为全球最强的全模态…...
GyverTimers:ATmega硬件定时器寄存器级精准控制
1. GyverTimers 库深度技术解析:面向 ATmega328P 与 ATmega2560 的硬件定时器全功能控制 GyverTimers 是一款专为 AVR 微控制器设计的轻量级、高精度硬件定时器控制库,其核心价值在于 绕过 Arduino 框架的抽象层,直接操作 ATmega 系列 MCU 的…...
告别重装系统!用宝塔官方卸载脚本一键清理面板与环境(附LNMP保留方案)
宝塔面板深度卸载指南:精准控制环境清理与数据保留策略 每次面对服务器环境调整时,那种"要不要重装系统"的纠结感总让人头疼。特别是当宝塔面板需要卸载时,大多数教程要么简单带过,要么直接建议核弹式的系统重装。但真实…...
