IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> kafka-client推送消息TimeoutException排查方法 -> 正文阅读

[大数据]kafka-client推送消息TimeoutException排查方法

kafka-client无法推送消息到kafka集群解决方法

一天,问题处理微信群又亮起了令人恐惧的红点,好吧,又要修bug了。测试说用户接收到不到推送消息了,赶紧查查什么问题。出了问题当然第一时间看服务器日志:

org.apache.kafka.common.errors.TimeoutException: Topic XXX not present in metadata after 60000 ms.

一、按照前人的经验,按如下步骤进行排查:

  1. 网络是否有问题?简单,使用telnet测试:

    telnet kafka集群服务器ip地址 9092
    

    结果可以连上,网络没问题,排除这个原因。如果连不上,可能是端口没对外开放。

  2. 版本问题?kafka是无法向上兼容的(这个改了,从0.10.2.0版本开始双向兼容了)公司kafka服务器集群是2.11-.0.9.0.1,项目pom文件引入的kafka-client是0.9.0.1,按理来说肯定没问题。排除。

  3. 难道是kafka集群炸了?测试一下知道,cd到kafka bin目录下:

    #用命令创建一个消息发布者
    ./kafka-console-producer.sh --broker-list 192.168.7.100:9092 --topic topic名
    
    #用命令创建一个订阅者
    ./kafka-console-consumer.sh --zookeeper localhost:12181 --topic topic名 --from-beginning
    

    创建之后在消息发布者窗口发送消息,订阅者可以接收到消息。好吧kafka集群也没问题。

  4. 难道是kafka-client配置不对?认真对了一遍,也没什么问题,网上有人试过kafka偶尔能接收到信息,偶尔接受不到,是因为partition分区数配置错了。我这是一直接收不到信息,分区数也没弄错。排除。

排查了好久,各种百度,也找不到是什么原因。但是,我是那么容易放弃的人吗(卑微打工人没有放弃的资质/(ㄒoㄒ)/~~),成功激发了我的斗志,我要放大招了!!!
找到了公司架构师,大佬,求求你教教我这题怎么做(QqQ)。大佬说这很有可能是版本的问题,你是去服务器上把jar包下下来,看看里面的kafka-client是哪个版本的 。我是懵逼的,还能有这种问题?本地工程里maven导入的kafka-client就是0.9.0.1版本的,用jenkins打包部署到sit服务器上的还能有不同的吗?把jar下下来一看,好家伙,kafka-client居然是2.11!!!问题找到了!!!
二、解决问题
第一次遇到这么奇葩的问题,按照项目的pom文件配置,在公司的仓库里拉取的是0.9版本的,但是sit环境上通过jenkins打包拉取到的确实2.11版本的。太坑了。产生这个原因应该是这项目的其他子项目也到了kafka-client-2.11,我配置的kafka依赖没起效。
这就是maven的依赖原则问题了,根据路径最短原则,修改了kafka-client依赖的的声明位置。重新打包,问题解决!!!困扰我好几天的问题终于解决了。。。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 12:00:29  更:2021-09-01 12:02:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:43:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码