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

kafka无法启动,提示连接zookeeper超时

        想必不少人都遇到过这种场景,明明昨天环境还好好的,今天怎么就不行了呢?关键是这种情况,有时候连重启大法都不管用了,顿时陷入了毫无头绪的茫然中。。。

        好了,聊回话题本身,因为升级程序,会自动重启zookeeper和kafka。程序升级成功之后,zookeeper服务正常,kafka服务未正常启动。查看其日志,显示连接zookeeper超时,然后自动退出程序。因为对kafka service设置了服务失败时自动重启,所以,kafka就一直在那无限重启。以下是kafka启动失败以及自动重启的日志:

[2024-08-15 12:15:46,799] ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
kafka.zookeeper.ZooKeeperClientTimeoutException: Timed out waiting for connection while in state: CONNECTINGat kafka.zookeeper.ZooKeeperClient.waitUntilConnected(ZooKeeperClient.scala:254)at kafka.zookeeper.ZooKeeperClient.<init>(ZooKeeperClient.scala:108)at kafka.zk.KafkaZkClient$.apply(KafkaZkClient.scala:1980)at kafka.server.KafkaServer.initZkClient(KafkaServer.scala:500)at kafka.server.KafkaServer.startup(KafkaServer.scala:203)at kafka.Kafka$.main(Kafka.scala:109)at kafka.Kafka.main(Kafka.scala)
[2024-08-15 12:15:46,800] INFO shutting down (kafka.server.KafkaServer)
[2024-08-15 12:15:46,805] INFO App info kafka.server for 0 unregistered (org.apache.kafka.common.utils.AppInfoParser)
[2024-08-15 12:15:46,806] INFO shut down completed (kafka.server.KafkaServer)
[2024-08-15 12:15:46,806] ERROR Exiting Kafka. (kafka.Kafka$)
[2024-08-15 12:15:46,808] INFO shutting down (kafka.server.KafkaServer)
[2024-08-15 12:15:48,120] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
[2024-08-15 12:15:48,480] INFO Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation (org.apache.zookeeper.common.X509Util)
[2024-08-15 12:15:48,592] INFO Registered signal handlers for TERM, INT, HUP (org.apache.kafka.common.utils.LoggingSignalHandler)
[2024-08-15 12:15:48,596] INFO starting (kafka.server.KafkaServer)

        说明一下,当前的zookeeper和kafka的连接是使用了SASL机制。最开始怀疑是不是SASL的配置升级时被破坏了,导致问题发生。于是,从其他正常的环境将zookeeper和kafka的相关配置文件都复制过来,再重启,看下是否正常。很不幸,不是配置的问题。

        继续翻看日志的时候,发现了这行日志:

[2024-08-15 12:15:46,679] INFO Session establishment complete on server 10.10.10.1/10.10.10.1:2181, session id = 0x10071c4a84a000b, negotiated timeout = 18000 (org.apache.zookeeper.ClientCnxn)

        协商时间是18000毫秒,也就是18s,既然你报连接超时,那我就把这个时间配置大一点,再看看你报什么错。找到kafka的配置文件server.properties,然后修改这个参数:

# Timeout in ms for connecting to zookeeper
# zookeeper.connection.timeout.ms=18000
zookeeper.connection.timeout.ms=60000

        我直接将默认的18s给改到60s,然后重启kafka。神奇的事情发生了。。。kafka连上zookeeper了,不再报超时的错误了。

        虽然连上了,但是这个并正常啊,zookeeper和kafka都是本机运行的,他们之间通信哪里需要那么长的时间啊,默认的18s都足够长了,一定是系统哪里设置的不对,影响到了kafka与zookeeper的网络连接。

        这时候,想起之前也遇到过类似的情况,当时好像还通过打断点的方式跟踪了代码的执行情况。详细的过程就不讲了,只说一下,当时怀疑是/etc/resolv.conf配置文件,里面配置了谷歌的域名解析服务器地址。如下:

search localdomain
nameserver 8.8.8.8
nameserver 8.8.4.4

        由于机房并未通外网,所以,当前主机ping这两个域名服务器的地址是ping不通的。既然ping不通,那就不要使用它了,而且,我们的程序都是使用的ip地址,不是域名,也用不到域名服务器进行解析。我选择屏蔽这两个地址,如下:

search localdomain
#nameserver 8.8.8.8
#nameserver 8.8.4.4

        修改完了之后,为了保证生效,我是直接reboot的操作系统,最开始是systemctl restart network来重启的网卡,但好像没生效。系统重启好了之后,再将kafka的service.properties配置改为默认的18s:

# Timeout in ms for connecting to zookeeper
zookeeper.connection.timeout.ms=18000
# zookeeper.connection.timeout.ms=60000

        然后重启kafka,看下日志,是否还会提示连接超时。理论上,kafka应该恢复了正常。

        回头想想,因为/etc/resolv.conf导致类似的问题,在我身上发生了不止一次,这次也是定位了半天,才想到可能是它导致的。公共环境,大家都在用,也不知道是谁,什么时候加上去的,只能说,太坑了。。。

        而且,我想不明白的是,记得当时断点跟踪代码时,使用的ip连接网络的时候,底层还是要会找域名服务器解析一下?这已经超过我的业务能力了,搞不懂。。。

相关文章:

kafka无法启动,提示连接zookeeper超时

想必不少人都遇到过这种场景&#xff0c;明明昨天环境还好好的&#xff0c;今天怎么就不行了呢&#xff1f;关键是这种情况&#xff0c;有时候连重启大法都不管用了&#xff0c;顿时陷入了毫无头绪的茫然中。。。 好了&#xff0c;聊回话题本身&#xff0c;因为升级程序&#x…...

mysql5.7.20升级5.7.44

近期安全测试mysql5.7.20有很多的漏洞&#xff0c;考虑升级到5.7.44 问题1&#xff1a;下载5.7.44的版本&#xff1a; 选择安装版本&#xff0c;或者zip解压版本&#xff0c;看上一篇文章 我选择了安装版本&#xff1b; 问题2&#xff1a;做好现场data文件的备份&#xff1…...

支持S/MIME证书的邮件客户端有哪些?

S/MIME证书&#xff0c;也叫做邮件安全证书&#xff0c;支持安全/多用途互联网邮件扩展协议&#xff08;S/MIME协议&#xff09;&#xff0c;是通过加密和数字签名来确保电子邮件的安全性、保密性和完整性的数字证书。GDPR、HIPAA、FDA等多个行业都要求邮件发送方在发送邮件时对…...

uniapp本地打包app安装说明

uniapp本地打包app安装说明 目录 uniapp本地打包app安装说明一、打包说明1.HBuilder X 生成本地打包资源2.Android Studio和App离线SDK环境准备2.1 下载Android Studio和 App离线SDK2.2 资源替换2.3 id属性值修改。2.4 添加provider信息到AndroidManifest.xml中的<applicati…...

ddos造成服务器瘫痪后怎么办

在服务器遭受DDoS攻击后&#xff0c;应立即采取相应措施&#xff0c;包括加强服务器安全、使用CDN和DDoS防御服务来减轻攻击的影响。rak小编为您整理发布ddos造成服务器瘫痪后怎么办。 当DDoS攻击发生时&#xff0c;首先要做的是清理恶意流量。可以通过云服务提供商提供的防护措…...

重磅官宣!追光少年【彭禹锦】荣担任中国美育促进网amp;IPA美育中国行代言人

在美育事业蓬勃发展的今天&#xff0c;一位年仅15岁的少年以其非凡的艺术才华和积极向上的精神风貌&#xff0c;成为了万众瞩目的焦点。中国美育促进网与IPA美育中国行正式宣布&#xff0c;才华横溢、正能量满满的追光少年彭禹锦受邀担任“中国美育促进网&IPA美育中国行”代…...

Python 解析GIS的SHP文件

工作中需要处理一些GIS数据&#xff0c;在 Python 中解析地理信息系统 (GIS) 的 Shapefile (.shp) 文件通常可以通过 geopandas 库来完成。geopandas 是基于 pandas 的一个扩展库&#xff0c;它支持地理空间数据的操作和分析。 下面是一个简单的示例&#xff0c;展示如何使用 …...

大模型微调--文章3

原文地址 链接&#xff1a;https://zhuanlan.zhihu.com/p/635848732 思考题 问题1&#xff1a;p-tuning为了解决什么问题&#xff1f;&#xff08;解决&#xff09; 答案&#xff1a;该方法的提出主要是为了解决这样一个问题&#xff1a;大模型的Prompt构造方式严重影响下游任…...

游戏测试中需求分析的本质

游戏测试大不同 1.游戏功能模块介绍1.1. 登录模块1.2. 注册模块1.3. 故事情节模块1.4. 动画模块1.5. 音频模块1.6. 结束界面模块1.7. 网络模块1.8. 数据库模块 2.需求文档编写2.1需求的定义2.2需求分类2.3需求分析目标 3.测试用例编写3.1测试用例的定义3.2测试用例拆解包含测试…...

2024零基础入行软件测试全网最全攻略

很多朋友想要入行软件测试&#xff0c;但是都不知道该怎么学。 抽个时间简单的给大家说下&#xff0c;对于0基础的朋友&#xff0c;应该怎么去学习软件测试。 学习软件测试有2条路可以选。 最省事的当然是找个靠谱的培训机构去培训啦&#xff0c;你就什么都不用想了&#xff0c…...

spring-boot-starter-quartz 自动化配置解析

版本 spring-boot:3.3.4 源码解析 依赖包 spring-boot-starter-quartz 的作用为引入相关依赖&#xff1a; spring-boot-starterspring-context-supportspring-txquartz 自动化配置类 依赖&#xff1a;spring-boot-autoconfigure:3.2.4 文件&#xff1a;org.springframewo…...

DM8 数据库查询版本号以及授权到期时间SQL

1.查看操作系统信息 [root@localhost ~]# cat /etc/.kyinfo [dist] name=Kylin milestone=Server-V10-GFB-Release-ZF9_01-2204-Build03 arch=arm64 beta=False time=2023-01-09 11:04:36 dist_id=Kylin-Server-V10-GFB-Release-ZF9_01-2204-Build03-arm64-2023-01-09 11:04:…...

算法【Java】—— 双指针算法

双指针算法 常见的双指针有对撞指针&#xff0c;快慢指针以及前后指针&#xff08;这个前后指针是指两个指针都是从从一个方向出发&#xff0c;去往另一个方法&#xff0c;也可以认为是小学学习过的两车并行&#xff0c;我也会叫做同向指针&#xff09;&#xff0c;在前后指针…...

【Python快速入门和实践013】Python常用脚本-目标检测之按照类别数量划分数据集

一、功能介绍 这段代码实现了从给定的图像和标签文件夹中分割数据集为训练集、验证集和测试集的功能。以下是代码功能的总结&#xff1a; 创建目标文件夹结构&#xff1a; 在指定的根目录&#xff08;dataset_root&#xff09;下创建images和labels两个文件夹。在这两个文件夹下…...

C++ Primer 总结索引 | 第十八章:用于大型程序的工具

1、大规模应用程序的特殊要求包括&#xff1a; 在独立开发的子系统之间 协同处理错误的能力使用各种库&#xff08;可能包含独立开发的库&#xff09;进行 协同开发的能力对比较复杂的应用 概念建模的能力 对应 异常处理、命名空间和多重继承 1、异常处理 1、异常处理机制 …...

Python实现GAN(生成对抗网络)图像修复算法

目录 1. GAN简介与图像修复2. PyTorch和CUDA简介3. 数据加载与预处理3.1 安装依赖3.2 数据加载3.3 数据遮挡4. 构建GAN图像修复模型4.1 生成器4.2 判别器5. 训练GAN模型5.1 损失函数与优化器5.2 训练循环6. 测7. 实现GUI进行图像修复8. 总结与扩展扩展方向:1. GAN简介与图像修…...

java语言中的websocket

你好&#xff01;我是TensGPT&#xff0c;一个由TensGPT团队开发的AI助手。我可以帮助你了解和使用Java语言中的WebSocket。如果你有任何问题或需要示例代码&#xff0c;请告诉我。 ### 什么是WebSocket&#xff1f; WebSocket是一种在单个TCP连接上进行全双工通信的协议。它被…...

ASP.NET在线交流论坛管理系统

ASP.NET在线交流论坛管理系统 说明文档 运行前附加数据库.mdf&#xff08;或sql生成数据库&#xff09; 主要技术&#xff1a; 基于asp.net架构和sql server数据库 用户功能有个人信息管理 帖了信息管理 意见反馈信息管理 点赞管理 收藏管理 后台管理员可以进行用户管理 …...

【Kubernetes】身份认证与鉴权

一&#xff0c;认证 所有 Kubernetes 集群有两类用户&#xff1a;由Kubernetes管理的ServiceAccounts(服务账户)和(Users Accounts)普通账户。 两种账户的区别&#xff1a; 普通帐户是针对(人)用户的&#xff0c;服务账户针对Pod进程普通帐户是全局性。在集群所有namespaces…...

数据集与数据库:有什么区别?

数据集和数据库是我们在处理数据时经常听到的两个常用词。虽然它们听起来很相似&#xff0c;但它们具有不同的特征并用于不同的用途。本文深入探讨数据集和数据库之间的主要区别&#xff0c;探索了它们的结构、数据类型和各种其他功能&#xff0c;以帮助您做出明智的决定&#…...

C++实现分布式网络通信框架RPC(3)--rpc调用端

目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中&#xff0c;我们已经大致实现了rpc服务端的各项功能代…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?

论文网址&#xff1a;pdf 英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若有发现欢迎评论指正&#xff01;文章偏向于笔记&#xff0c;谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...