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

在Docker中安装kafka遇到问题记录

命令含义解答:

在docker安装kafka的时候,启动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=192.168.11.129:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.11.129:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/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=192.168.11.129:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.11.129:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka

这个命令什么意思?

这个命令是用于在Docker中启动一个Kafka容器的命令。让我来解释一下这个命令的每个部分的含义:

  • docker run -d: 这是Docker命令的一部分,用于在后台运行容器。

  • --log-driver json-file --log-opt max-size=100m --log-opt max-file=2: 这些是日志驱动相关的选项,用于配置容器的日志。

  • --name kafka: 这是为容器指定一个名称,本例中是"kafka"。

  • -p 9092:9092: 这是用于将容器内部的9092端口映射到主机的9092端口,以便可以通过主机访问Kafka。

  • -e KAFKA_BROKER_ID=0: 这是设置Kafka Broker ID的环境变量,本例中设置为0。

  • -e KAFKA_ZOOKEEPER_CONNECT=192.168.11.129:2181/kafka: 这是指定Zookeeper的连接地址和端口的环境变量,本例中连接到192.168.11.129的2181端口。

  • -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.11.129:9092: 这是设置广告侦听器的环境变量,Kafka将广告侦听器公布给Zookeeper。

  • -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092: 这是设置侦听器的环境变量,这里设置Kafka监听所有接口的9092端口。

  • -v /etc/localtime:/etc/localtime: 这是将主机的时区文件挂载到容器中,以确保容器的时区与主机一致。

  • wurstmeister/kafka: 这是要运行的Kafka镜像的名称。

通过运行这个命令,您将在Docker中启动一个具有配置和映射的Kafka容器,其中包括Broker ID、Zookeeper连接、广告侦听器等设置。这样,您就可以在主机上使用Kafka来进行消息传递和其他操作。

疑问:上文中的-e KAFKA_ZOOKEEPER_CONNECT=192.168.11.129:2181/kafka。其中的192.168.11.129是zookeeper服务的ip地址吗?

答:

是的,192.168.11.129是Zookeeper服务的IP地址。在这个命令中,通过设置KAFKA_ZOOKEEPER_CONNECT环境变量为192.168.11.129:2181/kafka,指定了Kafka连接到的Zookeeper服务的地址和端口。在这里,192.168.11.129是Zookeeper服务器的IP地址,2181是Zookeeper的默认端口号。在/kafka后面的/kafka路径是指定Kafka在Zookeeper中的命名空间。

docker与宿主机直接ping的问题

环境:docker中使用ifconfig查看ip是172.17.0.2,宿主机的ip是192.168.8.190.

docker desktop中启动zookeeper后,使用ifconfig,查看ip是172.17.0.2.在Windows的宿主机上ping 172.17.0.2,ping不通。但是在docker中的zk可以ping 通宿主机的ip。

如果在Windows的宿主机上无法ping通172.17.0.2,但在Docker中的zk能够ping通宿主机的IP,这可能是由于Windows主机上的网络配置导致的。

Docker Desktop使用虚拟网络和网络地址转换(NAT)来连接容器和宿主机。默认情况下,Docker会将容器连接到一个虚拟网络,并在宿主机上创建一个虚拟网卡来与这个网络进行通信。因此,172.17.0.2是在Docker的虚拟网络上分配给zk容器的IP地址,仅在Docker虚拟网络中可用。

要使Windows宿主机能够访问到容器内的IP地址,可以尝试使用Docker的端口映射功能,将容器的端口映射到宿主机上的一个端口。例如,可以使用以下命令来运行zk容器并映射端口:

docker run -d -p 2181:2181 --name my-zk zookeeper:tag

这将把zk容器的2181端口映射到宿主机上的2181端口。然后,在Windows主机上,可以使用它自己的IP地址和映射的端口访问zk。

那如果在docker中启动了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=172.17.0.2:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://172.17.0.2:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka

使用172.17.0.2还是使用Windows宿主机的ip?

在这种情况下,应该使用宿主机的IP地址,而不是172.17.0.2。原因是Kafka的KAFKA_ADVERTISED_LISTENERS参数会告知客户端应该连接到哪个IP地址来访问Kafka服务器。

根据你提供的命令行参数,Kafka的广告侦听器配置为PLAINTEXT://172.17.0.2:9092,这意味着Kafka会告知客户端通过连接到172.17.0.2的9092端口来访问Kafka。然而,这只适用于Docker内部的网络。

如果你想从Windows宿主机访问Kafka,请将KAFKA_ADVERTISED_LISTENERS参数的值更改为宿主机的IP地址。即修改为PLAINTEXT://宿主机ip地址:9092,例如:

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=172.17.0.2:2181/kafka -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://宿主机ip地址:9092 -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 -v /etc/localtime:/etc/localtime wurstmeister/kafka

请将宿主机ip地址替换为你的Windows宿主机的实际IP地址。这样,Kafka就会告知客户端通过连接到宿主机的IP地址的9092端口来访问Kafka,从而使Windows宿主机能够访问到Kafka服务。

本文来源👉: 凯哥个人博客 点击查看更多哦~

相关文章:

在Docker中安装kafka遇到问题记录

命令含义解答: 在docker安装kafka的时候,启动kafka的时候会执行下面语句: docker run -d --log-driver json-file --log-opt max-size100m --log-opt max-file2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID0 -e KAFKA_ZOOKEEPER_CONNEC…...

aws-waf-cdn 基于规则组的永黑解决方案

1. 新建waf 规则组 2. 为规则组添加规则 根据需求创建不同的规则 3. waf中附加规则组 (此时规则组所有规则都会附加到waf中,但是不会永黑) 此刻,可以选择测试下规则是否生效,测试前确认保护资源绑定无误 4. 创建堆…...

如何实现免费无限流量云同步笔记软件Obsidian?

目录 前言 如何实现免费无限流量云同步笔记软件Obsidian? 一、简介 软件特色演示: 二、使用免费群晖虚拟机搭建群晖Synology Drive服务,实现局域网同步 1 安装并设置Synology Drive套件 2 局域网内同步文件测试 三、内网穿透群晖Synol…...

GPTs | Actions应用案例

上篇文章说道,如何使用创建的GPTs通过API接口去获取外部的一些信息,然后把获取的外部信息返回给ChatGPT让它加工出来,回答你的问题,今天我们就来做一个通俗易懂的小案例,让大家来初步了解一下它的使用法! …...

Python Opencv实践 - 手势音量控制

本文基于前面的手部跟踪功能做一个手势音量控制功能,代码用到了前面手部跟踪封装的HandDetector.这篇文章在这里: Python Opencv实践 - 手部跟踪-CSDN博客文章浏览阅读626次,点赞11次,收藏7次。使用mediapipe库做手部的实时跟踪&…...

关于Selenium的网页对象单元测试的设计模式

写在前面:经过了实践总结一下经验,心得进行一个分享。 首先driver是可以单独抽出来的,变成一个driver函数放在driver.py。 from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver…...

基于多反应堆的高并发服务器【C/C++/Reactor】(上)

(一)初始化服务器端用于监听的套接字 Server.h #pragma once // 初始化监听的套接字 int initListenFd(unsigned short port); Server.c int initListenFd(unsigned short port) {// 1.创建监听的fdint lfd socket(AF_INET, SOCK_STREAM, 0);if(lf…...

腾讯云debian服务器的连接与初始化

目录 1. 远程连接2. 软件下载3. 设置开机自启动 1. 远程连接 腾讯云给的服务器在安装好系统之后,只需要在防火墙里面添加一个白名单(ip 或者域名)就能访问了。 浏览器打开https://www.ipip.net/,在左下角找到自己所用的WIFI的公…...

医保购药小程序:智能合约引领医疗数字革新

在医疗领域,医保购药小程序通过引入智能合约技术,为用户提供更为高效、安全的购药体验。本文将通过简单的智能合约代码示例,深入探讨医保购药小程序如何利用区块链技术中的智能合约,实现医保结算、购药监控等功能,为医…...

神经网络:深度学习优化方法

1.有哪些方法能提升CNN模型的泛化能力 采集更多数据:数据决定算法的上限。 优化数据分布:数据类别均衡。 选用合适的目标函数。 设计合适的网络结构。 数据增强。 权值正则化。 使用合适的优化器等。 2.BN层面试高频问题大汇总 BN层解决了什么问…...

Unity中Shader旋转矩阵(二维旋转矩阵)

文章目录 前言一、旋转矩阵的原理1、我们以原点为中心,旋转坐标轴θ度2、求 P~2x~:3、求P~2y~:4、最后得到 P~2~点 的点阵5、该点阵可以拆分为以下两个矩阵相乘的结果 二、在Shader中,使用该旋转矩阵实现围绕 z 轴旋转1、在属性面板定义 floa…...

前端面试题(计算机网络):options请求方法及使用场景

OPTIONS请求方法及使用场景 回答思路:什么是options请求-->options请求方法-->options使用场景什么是options请求?(浅入)扩展:常见的HTTP请求有什么?扩展:常见的HTTP请求的作用&#xff1…...

使用docker-compose管理docker服务

使用docker-compose管理docker服务 1,创建docker-compose.yml version: 3 services:javaapp:build: context: ./javaappdockerfile: Dockerfileports:- "9202:9202"- "19202:19202"goapp:build: context: ./goappdockerfile: Dockerfileports…...

Python_Tkinter和OpenCV模拟行星凌日传输光度测定

传输光度测定 在天文学中,当相对较小的天体直接经过较大天体的圆盘和观察者之间时,就会发生凌日。 当小物体移过较大物体的表面时,较大物体会稍微变暗。 最著名的凌日是水星和金星对太阳的凌日。 借助当今的技术,天文学家可以在…...

【安全】使用auparse解析auditd审计日志

使用auparse解析auditd审计日志 1 审计日志特点 查看auditd.log的日志,审计日志的格式如下: typeSYSCALL msgaudit(1703148319.954:11680975): archc000003e syscall2 successyes exit5 a01102430 a10 a21b6 a324 items1 ppid7752 pid7761 auid0 uid0…...

flink watermark 实例分析

WATERMARK 定义了表的事件时间属性,其形式为: WATERMARK FOR rowtime_column_name AS watermark_strategy_expression rowtime_column_name 把一个现有的列定义为一个为表标记事件时间的属性。该列的类型必须为 TIMESTAMP(3)/TIMESTAMP_LTZ(3),且是 sche…...

系列十二(面试)、Java中的GC回收类型有哪些?

一、Java中的GC回收类型 1.1、概述 Java中的GC回收类型主要包含以下几种,即:UseSerialGC、UseParallelGC、UseConcMarkSweepGC、UseParNewGC、UseParallelOldGC、UseG1GC。 1.2、源码...

华为数通方向HCIP-DataCom H12-831题库(多选题:201-220)

第201题 在多集群RR组网中,每个集群中部署了一台RR设备及其客户机,各集群的RR与为非客户机关系,并建立IBGP全连接。以下关于BGP路由反射器发布路由规则的描述,正确的有哪些? A、若某RR从EBGP对等体学到的路由,此RR会传递给其他集群的RR B、若某RR从非客户机IBGP对等体学…...

NLP论文阅读记录 - | 使用GPT对大型文档集合进行抽象总结

文章目录 前言0、论文摘要一、Introduction二.相关工作2.1Summarization2.2 神经网络抽象概括2.2.1训练和测试数据集。2.2.2 评估。 2.3 最先进的抽象摘要器 三.本文方法3.1 查询支持3.2 文档聚类3.3主题句提取3.4 语义分块3.5 GPT 零样本总结 四 实验效果4.1数据集4.2 对比模型…...

华为全屋wifi6蜂鸟套装标准

华为政企42 华为政企 目录 上一篇华为安防监控摄像头下一篇华为企业级无线路由器...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...

在rocky linux 9.5上在线安装 docker

前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

mongodb源码分析session执行handleRequest命令find过程

mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet,点击确认后如下提示 最终上报fail 解决方法 内核升级导致,需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...

LLM基础1_语言模型如何处理文本

基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...

今日科技热点速览

🔥 今日科技热点速览 🎮 任天堂Switch 2 正式发售 任天堂新一代游戏主机 Switch 2 今日正式上线发售,主打更强图形性能与沉浸式体验,支持多模态交互,受到全球玩家热捧 。 🤖 人工智能持续突破 DeepSeek-R1&…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...