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

本地不能訪問linux的kafka服務

1.本地使用kafka客戶端工具連接kafka服務,提示連接失敗

2. 本地使用telnet ip port命令也失敗

3.查看zookeeper和kafka服務是否正常

ps -ef | grep zookeeper

ps -ef | grep kafka

3.關閉操作系統的防火墻(僅限于測試使用)

3.1.禁用防火墙

systemctl stop firewalld

4.在kafka的安裝目錄的配置文件 server.properties裏面配置listeners和advertised.listeners:

先簡單介紹一下概念:

listeners

侦听器列表,这里配置的监听器底层调用的是

ServerSocketAdaptor.bind(SocketAddress local)

说明你配置的监听器将被用于监听网络请求。

简单理解就是你建立监听一个通道,别人能够通过这个通道跟你沟通。

所以我们需要设置 IP:Port.

这个属性的格式为:

 listeners = listener_name://host_name:port,listener_name2://host_nam2e:port2

可以同时配置多个, 并且用逗号隔开

监听器的名称和端口必须是唯一的,端口相同,就冲突了

host_name如果为空,例如(),则会绑定到默认的接口(网卡),一般情况下是,底层调用的是

将host_name设置为 则会绑定所有的网卡, 也就是说不管从哪个网卡进入的请求都会被接受处理。但是请注意,假如你设置的是,那么 必须要设置,因为默认请看下使用的是的配置发布到zk中,发布到zk中是给其他Brokers/Clients 来跟你通信的,你设置,谁知道要请求哪个IP呢, 所以它必须要指定并明确 IP:PORT。具体详情请看下面

listener_name 是监听名,唯一值, 他并不是安全协议(大部分人都会搞错),因为默认的4个安全协议已经做好了映射, 例如 :PLAINTEXT ==> PLAINTEXT . 所以你经常看到的配置

可动态配置该属性

advertised.listeners

发布公开的监听器, 啥叫发布公开的监听器?

就是,让Brokers和Clients们都能够知道的监听器,你想想看,listeners是Broker用来监听网络请求的

那么,其他Broker或者客户端想要与它通信,则需要知道具体的IP:PORT吧?

所以,为了让别人知道自己的监听器,那么就需要公开出去,当然这个公开的形式,是通过zk来共享数据。

看看broker到zk节点/brokers/{brokerid}/ 下面的信息示例

这个属性的格式为:

advertised.listeners = listener_name://host_name:port,listener_name2://host_nam2e:port2
  1. 默认情况下,advertised.listeners不设置会自动使用listeners属性
  2. advertised.listeners不支持0.0.0.0这种形式, 所以如果listeners属性设置成0.0.0.0,则必须设置advertised.listeners属性。具体请看 示例3 因为0.0.0.0是表示的是监听Broker上任意的网卡的, 你将这个发布出去,那么别的Broker和客户端怎么知道你具体的ip和端口呢?
  3. 可以同时配置多个, 并且用逗号隔开
  4. 可动态配置该属性

以下是我的配置:

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://内(外)網ip:9092

5.重新啓動zookeeper和kafka服務

./zookeeper-server-start.sh /usr/local/kafka_2.13-3.8.0/config/zookeeper.properties &

./kafka-server-start.sh /usr/local/kafka_2.13-3.8.0/config/server.properties & 

6.使用客戶端再次鏈接kafka服務端

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 大模型教程:使用 Milvus、vLLM 和 Llama 3.1 搭建 RAG 应用
  • this 指向
  • vmware中的ubuntu系统扩容分区
  • uniapp如何实现图片轮播特效?
  • 全面掌握 Jest:从零开始的测试指南(下篇)
  • 【python】OpenCV—Mask RCNN for Object Detection and Instance Segmentation
  • 移动音乐厅:灵活与高效的音乐盛宴空间—轻空间
  • 十七,Spring Boot 整合 MyBatis 的详细步骤(两种方式)
  • Flume的安装与使用 -- flume自定义拦截器 -- tailDir + Memory + HDFS案例
  • 技术美术一百问(02)
  • 03请求响应(实体参数、集合参数、时间日期参数和Json参数)
  • 一、Numpy入门
  • 【IP协议】解决 IP 地址不够用的问题(IP地址管理:动态分配、NAT、Ipv6)
  • soc及其相关概念
  • RT-Thread 整体分析
  • ES6指北【2】—— 箭头函数
  • 【面试系列】之二:关于js原型
  • Android 架构优化~MVP 架构改造
  • css选择器
  • Javascript基础之Array数组API
  • JavaScript中的对象个人分享
  • JS函数式编程 数组部分风格 ES6版
  • Node项目之评分系统(二)- 数据库设计
  • Objective-C 中关联引用的概念
  • Python_网络编程
  • sublime配置文件
  • Vue ES6 Jade Scss Webpack Gulp
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • vue数据传递--我有特殊的实现技巧
  • webgl (原生)基础入门指南【一】
  • webpack+react项目初体验——记录我的webpack环境配置
  • 前端临床手札——文件上传
  • 全栈开发——Linux
  • 入门级的git使用指北
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #162 (Div. 2)
  • #微信小程序:微信小程序常见的配置传值
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (0)Nginx 功能特性
  • (03)光刻——半导体电路的绘制
  • (2024)docker-compose实战 (9)部署多项目环境(LAMP+react+vue+redis+mysql+nginx)
  • (Oracle)SQL优化基础(三):看懂执行计划顺序
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (十三)MipMap
  • (四)js前端开发中设计模式之工厂方法模式
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (转)Mysql的优化设置
  • .NET 中创建支持集合初始化器的类型
  • .NetCore 如何动态路由
  • .NET国产化改造探索(一)、VMware安装银河麒麟