在虚拟机上搭建 Docker Kafka 宿主机器程序无法访问解决方法

1、问题描述

在虚拟机CentOS-7上搭建的Docker Kafka ,docker内部可以创建Topic、可以生产者数据、可以消费数据,而在宿主机开发程序无法消费Docker  Kafka的数据。

1.1、运行情况

[docker@localhost ~]$ docker ps -a
CONTAINER ID   IMAGE                COMMAND                  CREATED          STATUS                    PORTS                                                                     NAMES
c894cb467f23   wurstmeister/kafka   "start-kafka.sh"         19 minutes ago   Up 19 minutes             0.0.0.0:9092->9092/tcp, :::9092->9092/tcp                                 kafka
ca4c190038ea   zookeeper            "/docker-entrypoint.…"   58 minutes ago   Up 58 minutes             2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, :::2181->2181/tcp, 8080/tcp   zookeeper

1.2、生产数据

[docker@localhost ~]$ docker exec -it kafka kafka-console-producer.sh --broker-list 192.168.33.231:9092 --topic test
>123
>345
>2024-06-07

1.3、消费数据

[docker@localhost ~]$ docker exec -it kafka kafka-console-consumer.sh --bootstrap-server 192.168.33.231:9092 --topic test --from-beginning
123
345
2024-06-07

2、问题分析

2.1、docker 配置

docker run -d --name kafka --publish 9092:9092 \
--link zookeeper \
--env KAFKA_ADVERTISED_HOST_NAME=192.168.33.231 \
--env KAFKA_ZOOKEEPER_CONNECT=192.168.33.231:2181 \
--env KAFKA_ADVERTISED_PORT=9092  \
--env KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.33.231:9092 \
--env KAFKA_LISTENERS=PLAINTEXT://:9092 \
--env KAFKA_LOG_DIRS=/kafka/kafka-logs-1 \
-v /bigdata/kafka_data/data:/kafka/kafka-logs-1  \
wurstmeister/kafka

2.2.端口查看

[docker@localhost ~]$ lsof -i:9092
[docker@localhost ~]$
[docker@localhost ~]$
[docker@localhost ~]$
[docker@localhost ~]$
[docker@localhost ~]$
[docker@localhost ~]$
[docker@localhost ~]$ netstat -tunlp | grep 9092
(Not all processes could be identified, non-owned process infowill not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:9092            0.0.0.0:*               LISTEN      -
tcp6       0      0 :::9092                 :::*                    LISTEN      -

2.3、原因分析

1)配置原因

-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://139.226.179.239:9092 
把kafka的地址端口注册给zookeeper,若远程访问要改成外网IP,千万注意是外网IP,很多文章只说是宿主机IP, 演示例子上写的是内网IP,很容易被误导

-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 
配置kafka的监听端口

2)虚拟机防火墙

  • 查看防火墙是否开启

systemctl status firewalld

  • 开启防火墙

firewall-cmd --list-ports

  • 重启防火墙

firewall-cmd --reload

  • 启动防火墙后,默认没有开启任何端口,需要手动开启端口

firewall-cmd --zone=public --add-port=9092/tcp --permanent

参数:--zone    (作用域)
      --add-port=9092/tcp   (添加端口,格式:端口/通讯协议)
      --permanent   (永久生效,没有此参数重启后失效)

3、解决方法

3.1、关闭虚拟机防火墙

systemctl stop firewalld.service

3.2、添加宿主机到Docker的路由

以管理员身份运行CMD,添加如下路由
route add -p 172.17.0.2 mask 255.255.0.0 192.168.33.231

3.3、打开虚拟机NET网卡配置

添加宿主机和虚拟机网卡 端口转发如图:

4、结论:

本机-宿主机程序直接发送数据

Docker kafka 数据:

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

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

相关文章

还不会线程池?JUC线程池源码级万字解析

线程池主要解决了两个问题: 第一个是当大量执行异步任务的时候提供较好的性能;在不使用线程池的时候,每次需要执行一个异步任务都需要新建一个 Thread 来进行,而线程的创建和销毁都是需要时间的,所以可以通过线程池来实…

AI论文速读 | 2024[ICML]FlashST:简单通用的流量预测提示微调框架

题目: FlashST: A Simple and Universal Prompt-Tuning Framework for Traffic Prediction 作者:Zhonghang Li, Lianghao Xia(夏良昊), Yong Xu(徐勇), Chao Huang 机构:华南理工大学&#xf…

【SpringBoot】SpringBoot整合RabbitMQ消息中间件,实现延迟队列和死信队列

📝个人主页:哈__ 期待您的关注 目录 一、🔥死信队列 RabbitMQ的工作模式 死信队列的工作模式 二、🍉RabbitMQ相关的安装 三、🍎SpringBoot引入RabbitMQ 1.引入依赖 2.创建队列和交换器 2.1 变量声明 2.2 创建…

在群晖上通过Docker部署DB-GPT

最近一直有网友在后台私信,发的内容高度统一,只有后面 8 位数字不一样,都是 #22232 xxxxxxxx,有谁知道是什么意思吗?在我印象中,这是第二次这么大规模的发类似的字符串了 什么是 DB-GPT ? DB-G…

Linux lvm卷扩容之SSM

介绍 SSM(System Storage Manager)是系统存储管理器,它是一种统一的命令行界面,用于管理各种存储设备。通过SSM,用户可以方便地管理、配置和监控存储系统。检查关于可用硬驱和LVM卷的信息。显示关于现有磁盘存储设备、…

O2OA(翱途)开发应用平台(v9)开发实战(3)-如何做信息发布

内容管理就是用来发布信息的,比如说发布单位的内部信息:像公司新闻、通知公告、规章制度等等。 接下来我们来介绍一下如何创建,比如我要创建一个栏目,专门用来发布公司的规章制度 需求 规章制度 首先从菜单打开“内容管理设置…

平衡二叉树AVL

平衡二叉树是一种特殊的二叉查找树,其中每个节点的左右子树的高度差不超过1。这种树的平衡性质使其在多种操作下保持较高的效率。 平衡二叉树的定义与性质 严格定义:在平衡二叉树中,任一节点的两个子树的高度最大差别为一,这使得…

Linux卸载RocketMQ教程【带图文命令巨详细】

巨详细Linux卸载RocketMQ教程 #查询rocketmq进程 ps -ef | grep rocketmq #杀掉相关进程 kill -9 进程id #查找安装目录 find / -name runbroker.sh #删除rocketMQ目录 rm -rf 安装目录框起来的就是进程id,全部杀掉 这里就是我的安装目录,我的删除命令…

SwiftUI五视图动画和转场

代码下载 使用SwiftUI可以把视图状态的改变转成动画过程,SwiftUI会处理所有复杂的动画细节。在这篇中,会给跟踪用户徒步的图表视图添加动画,使用animation(_:)修改器给一个视图添加动画效果非常容易。 下载起步项目并跟着本篇教程一步步实践…

AI 写高考作文丨10 款大模型 “交卷”,实力水平如何?

前言 在科技日新月异的今天,人工智能(AI)已不再是遥不可及的未来科技,而是逐渐融入我们日常生活的实用工具。从智能语音助手到自动驾驶汽车,从智能家居系统到精准医疗诊断,AI技术正以其强大的计算能力和数…

Rust基础学习-Rust宏

Rust中的宏是生成另一段代码的一段代码。可以根据输入生成代码,简化重复模式,使得代码更加简洁。比如我们一直在用的println!,vec!,panic!都是宏。 创建宏 可以使用macro_rules!创建一个宏: macro_rules! macro_name {(...) > {...} }这…

c#与汇川plc通信 使用官网API库

前言 上位机开发中有时会要求与PLC进行通信,汇川官网也有好用的API库方便大家使用。记录一下开发过程。 1.下载资料 汇川官网地址:汇川技术 - 推进工业文明 共创美好生活 打开后选择:服务与支持-》资料下载-》 资料下载 这里可以直接搜索&am…

C++学习插曲:“name“的初始化操作由“case“标签跳过

问题 "name"的初始化操作由"case"标签跳过 问题代码 case 3: // 3、删除联系人string name;cout << "请输入删除联系人姓名&#xff1a;" << endl;cin >> name;if (isExistPerson(&abs, name) -1){cout << "…

【刷题篇】分治-归并排序

文章目录 1、排序数组2、交易逆序对的总数3、计算右侧小于当前元素的个数4、翻转对 1、排序数组 给你一个整数数组 nums&#xff0c;请你将该数组升序排列。 class Solution { public:vector<int> tmp;void mergeSort(vector<int>& nums,int left,int right){…

cocos creator3.7版本拖拽事件处理

前言&#xff1a;网上能找到的资料都太落后了&#xff0c;导致哥们用AI去写&#xff0c;全是瞎B写&#xff0c;版本都不对。贴点实际有用的。别老捣鼓你那破convertToNodeSpaceAR或者convertToNodeSpace了。 核心代码 touch.getDeltaX() touch.getDeltaY() 在cocoscreator3…

python-自幂数判断

[题目描述]&#xff1a; 自幂数是指&#xff0c;一个N 位数&#xff0c;满足各位数字N 次方之和是本身。例如&#xff0c;153153 是 33 位数&#xff0c;其每位数的 33 次方之和&#xff0c;135333153135333153&#xff0c;因此 153153 是自幂数&#xff1b;16341634 是 44 位数…

简单快速设置Windows和Ubuntu双系统双引导

一、参考资料 Windows和Ubuntu双系统安装教程 二、设置引导 1. 安装EasyBCD 下载并安装 EasyBCD 2. 设置Windows引导 3. 设置Ubuntu引导 4. 启动系统 遇到这种情况&#xff0c;直接Enter回车。 三、修复引导 如果引导区损坏&#xff0c;导致无法进入系统&#xff0c;可以…

FuTalk设计周刊-Vol.041

&#x1f525;AI漫谈 热点捕手 1、国产GPTs来了&#xff0c;基于智谱第4代大模型 全自研第四代基座大模型GLM-4&#xff0c;且所有更新迭代的能力全量上线。GLM-4性能相比GLM-3提升60%&#xff0c;逼近GPT-4&#xff08;11月6日最新版本效果&#xff09;。而同时推出的GLM-4-…

【漏洞复现】多客圈子论坛系统 httpGet 任意文件读取漏洞

0x01 产品简介 多客圈子论坛系统是一种面向特定人群或特定话题的社交网络&#xff0c;它提供了用户之间交流、分享、讨论的平台。在这个系统中&#xff0c;用户可以创建、加入不同的圈子&#xff0c;圈子可以是基于兴趣、地域、职业等不同主题的。用户可以在圈子中发帖、评论、…

算法分析与设计期末考试复习(更新ing)

重点内容&#xff1a; 绪论&#xff1a; 简单的递推方程求解 1.19(1)(2) 、 教材例题 多个函数按照阶的大小排序 1.18 分治法&#xff1a; 分治法解决芯片测试问题 计算a^n的复杂度为logn的算法&#xff08;快速幂&#xff09; 分治法解决平面最近点对问…