文档章节

kafka中 FailedToSendMessageException解决

JerryYux
 JerryYux
发布于 2014/11/13 11:20
字数 1145
阅读 27320
收藏 3
点赞 0
评论 4

这两天在学kafka,把官网上的demo部署到自己的虚拟机上运行,正常;

然后部署到公司的研发线主机上,发现producer一直无法发送消息;

部分错误日志如下:

[2014-11-13 09:58:09,660] WARN Error while fetching metadata [{TopicMetadata for topic mor ->
No partition metadata for topic mor due to kafka.common.LeaderNotAvailableException}] for topic [mor]: class kafka.common.LeaderNotAvailableException  (kafka.producer.BrokerPartitionInfo)
[2014-11-13 09:58:09,660] ERROR Failed to send requests for topics mor with correlation ids in [17,24] (kafka.producer.async.DefaultEventHandler)
[2014-11-13 09:58:09,660] ERROR Error in handling batch of 17 events (kafka.producer.async.ProducerSendThread)
kafka.common.FailedToSendMessageException: Failed to send messages after 3 tries.
        at kafka.producer.async.DefaultEventHandler.handle(DefaultEventHandler.scala:90)
        at kafka.producer.async.ProducerSendThread.tryToHandle(ProducerSendThread.scala:104)
        at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:87)
        at kafka.producer.async.ProducerSendThread$$anonfun$processEvents$3.apply(ProducerSendThread.scala:67)
        at scala.collection.immutable.Stream.foreach(Stream.scala:526)
        at kafka.producer.async.ProducerSendThread.processEvents(ProducerSendThread.scala:66)
        at kafka.producer.async.ProducerSendThread.run(ProducerSendThread.scala:44)

操作步骤完全一样,只是在研发线上修改了zookeeper的监听端口,输入命令时也是按照对应的端口输入的,所以不是参数有问题导致的;

对比了研发线和虚拟机上的配置,发现除了这个端口之外,没有区别;

鼓捣了一天,没找到问题出在哪里;

第二天来上班,把server.properties文件里

#host.name=localhost

的注释去掉,然后运行,发现问题解决了;

(但是在虚拟机里明明没有修改这个东西也是可以正常运行的;

怀疑是发行版不同,一些内部的配置有区别导致的;

虚拟机:

Distributor ID:    Ubuntu
Description:    Ubuntu 14.04.1 LTS
Release:    14.04
Codename:    trusty

研发线:

LSB Version:    :
Distributor ID: RedHatEnterpriseServer
Description:    Red Hat Enterprise Linux Server release 5.4 (Tikanga)
Release:        5.4
Codename:       Tikanga

)



在解决问题的过程中,还发现其他的问题,但是目前没发现影响运行;

就是zookeeper和broker跑起来之后,创建producer,创建话题,创建Consumer,的时候,zookeeper都会报异常,部分记录如下:


[2014-11-13 09:12:13,486] INFO Got user-level KeeperException when processing sessionid:0x149a6b3e36c0001 type:setData cxid:0x3 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/config/topics/morning Error:KeeperErrorCode = NoNode for /config/topics/morning (org.apache.zookeeper.server.PrepRequestProcessor)

[2014-11-13 09:12:13,506] INFO Got user-level KeeperException when processing sessionid:0x149a6b3e36c0001 type:create cxid:0x4 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/config/topics Error:KeeperErrorCode = NodeExists for /config/topics (org.apache.zookeeper.server.PrepRequestProcessor)

[2014-11-13 09:12:13,535] INFO Processed session termination for sessionid: 0x149a6b3e36c0001 (org.apache.zookeeper.server.PrepRequestProcessor)

[2014-11-13 09:19:50,958] INFO Got user-level KeeperException when processing sessionid:0x149a6bbeaf50000 type:create cxid:0x4 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/brokers Error:KeeperErrorCode = NoNode for /brokers (org.apache.zookeeper.server.PrepRequestProcessor)
[2014-11-13 09:19:50,982] INFO Got user-level KeeperException when processing sessionid:0x149a6bbeaf50000 type:create cxid:0xa zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/config Error:KeeperErrorCode = NoNode for /config (org.apache.zookeeper.server.PrepRequestProcessor)
[2014-11-13 09:19:50,998] INFO Got user-level KeeperException when processing sessionid:0x149a6bbeaf50000 type:create cxid:0x10 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/admin Error:KeeperErrorCode = NoNode for /admin (org.apache.zookeeper.server.PrepRequestProcessor)
[2014-11-13 09:19:51,295] INFO Got user-level KeeperException when processing sessionid:0x149a6bbeaf50000 type:setData cxid:0x19 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/controller_epoch Error:KeeperErrorCode = NoNode for /controller_epoch (org.apache.zookeeper.server.PrepRequestProcessor)
[2014-11-13 09:19:51,374] INFO Got user-level KeeperException when processing sessionid:0x149a6bbeaf50000 type:delete cxid:0x27 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/admin/preferred_replica_election Error:KeeperErrorCode = NoNode for /admin/preferred_replica_election (org.apache.zookeeper.server.PrepRequestProcessor)

[2014-11-13 10:31:50,651] INFO Got user-level KeeperException when processing sessionid:0x149a6bbeaf5001a type:setData cxid:0x19 zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/consumers/test-consumer-group/offsets/mor/0 Error:KeeperErrorCode = NoNode for /consumers/test-consumer-group/offsets/mor/0 (org.apache.zookeeper.server.PrepRequestProcessor)
[2014-11-13 10:31:50,661] INFO Got user-level KeeperException when processing sessionid:0x149a6bbeaf5001a type:create cxid:0x1a zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/consumers/test-consumer-group/offsets Error:KeeperErrorCode = NoNode for /consumers/test-consumer-group/offsets (org.apache.zookeeper.server.PrepRequestProcessor)


一开始producer无法发送消息,以为是和这些异常有关,但是在虚拟机里运行的时候,同样出现这些异常,但是也没有影响producer发送消息;

在网上查了半天,有人说是不正确关闭zookeeper和server的原因,有人说是没有删除/tmp下的zookeeper日志和kafka日志的原因,

总之,我试了上面提到的方法,还是报这些异常;

如果有哪位仁兄知道这些异常是什么原因引起的,请告诉我,十分感谢;



另外,从本机运行java代码的Consumer连接研发线的时候,连接迅速被关闭了,收不到producer发来的消息;

原因是配置的超时时间太短,zookeeper没有读完Consumer的数据,连接就被Consumer断开了,部分日志如下:

[2014-11-13 10:28:47,989] INFO Accepted socket connection from /192.168.50.33:2676 (org.apache.zookeeper.server.NIOServerCnxn)
[2014-11-13 10:28:47,989] WARN EndOfStreamException: Unable to read additional data from client sessionid 0x0, likely client has closed socket (org.apache.zookeeper.server.NIOServerCnxn)


解决办法,就是把配置里的超时时间配置的长点儿,如下:

props.put("zookeeper.session.timeout.ms", "400000");



对了,还有个问题,kafka官网上关于java版producer部分的代码,有个地方写的不是很明确,如下:

props.put("metadata.broker.list", "broker1:9092,broker2:9092");
 

broker1和broker2代表broker对应的hostname,而不是broker的id.正确示例如下:

 props.put("metadata.broker.list", "localhost:9092,localhost:9093");


© 著作权归作者所有

共有 人打赏支持
JerryYux
粉丝 4
博文 15
码字总数 8418
作品 0
杭州
程序员
加载中

评论(4)

xiao艾24716
xiao艾24716
org.apache.kafka.common.errors.TimeoutException: Batch expired
原因:Flume与Kafka连接时,Kafka回送集群信息,以hostname返回,本地无法识别
解决:Flume配置hosts文件
ericquan8
ericquan8

引用来自“CCLL”的评论

您好!请问您这个问题解决了吗?[2014-11-13 10:31:50,661] INFO Got user-level KeeperException when processing sessionid:0x149a6bbeaf5001a type:create cxid:0x1a zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/consumers/test-consumer-group/offsets Error:KeeperErrorCode = NoNode for /consumers/test-consumer-group/offsets (org.apache.zookeeper.server.PrepRequestProcessor)
怎么解决的?能够告知一下吗?
这不是错误,是zk正常的日志信息,原因是zk自己删除不存在的节点导致的。如果你不喜欢看到,可以调整zk日志级别。
JerryYux
JerryYux

引用来自“CCLL”的评论

您好!请问您这个问题解决了吗?[2014-11-13 10:31:50,661] INFO Got user-level KeeperException when processing sessionid:0x149a6bbeaf5001a type:create cxid:0x1a zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/consumers/test-consumer-group/offsets Error:KeeperErrorCode = NoNode for /consumers/test-consumer-group/offsets (org.apache.zookeeper.server.PrepRequestProcessor)
怎么解决的?能够告知一下吗?
一直没解决,后来这个东西也没有确定是否替代生产环境中的memcache;然后我就离职了;
CCLL
CCLL
您好!请问您这个问题解决了吗?[2014-11-13 10:31:50,661] INFO Got user-level KeeperException when processing sessionid:0x149a6bbeaf5001a type:create cxid:0x1a zxid:0xfffffffffffffffe txntype:unknown reqpath:n/a Error Path:/consumers/test-consumer-group/offsets Error:KeeperErrorCode = NoNode for /consumers/test-consumer-group/offsets (org.apache.zookeeper.server.PrepRequestProcessor)
怎么解决的?能够告知一下吗?
kafka Failed to send messages after 3 tries.

我在网上搜了很多资料 说是zookeeper的问题,修改更改server.properties下的host.name,zookeeper.connect的localhost 为ip地址 怎么也不管用 后来就单独建了一个项目,发现没有问题。结论是j...

internetafei ⋅ 2015/04/10 ⋅ 2

kafka集群发送消息报错

因为logstash采集的日志要发往kafka做一个队列机制,搭建完kafka集群后发送消息出现问题 ERROR fetching topic metadata for topics [Set(order)] from broker [ArrayBuffer(id:0,host:slave...

冰公子 ⋅ 2016/06/07 ⋅ 0

apache kafka 遇到 Attempt to heart beat failed since the group is rebalancing, try to re-join group. 该如何解决?

spirng-kafka的多consumer问题困扰了我好久,今天项目再次出现 这个问题,导致消息接收不了了,查询了很多资料,也看了很多相关文章, 但是并没有找到什么解决方法,也许是我搜索方式错了? ...

Neon_Wang ⋅ 2017/08/16 ⋅ 3

kafka kerberos 认证访问与非认证访问共存下的ACL问题

在一个正在运行的kafka集群中添加kerberos认证和ACL权限控制,同时保证以前所有的producerconsumer服务不中断 解决方式: 使kafka集群监听两个端口,一个为无认证连接,另一个为kerberos的认...

落花非有意 ⋅ 2017/08/22 ⋅ 0

Apache Kafka 发布 1.0 的首个更新版本,Bug 修复

Apache Kafka 1.0 重大版本于 2017 年 11 月发布,时隔 4 个月,现在迎来了它的首次更新。本次发布的 Apache Kafka 1.0.1 是一个 bug 修复版本,已修复了 49 个问题。虽然这些 bug 不是严重的...

局长 ⋅ 03/07 ⋅ 29

storm集群 + kafka单机性能测试

storm与kafka单机功能整合很顺利,但是到了storm集群环境和数据处理性能时则出现了一些问题,现将测试过程和问题简单记录如下: 性能指标:每分钟处理至少100万的信息(csv格式,100bytes左右...

GoldenRoc ⋅ 2014/09/26 ⋅ 2

Apache Kafka 0.10.1.0 发布,大量更新

Apache Kafka 0.10.1.0 发布了,该版本更新了大量内容,主要改进如下: 新特性 [KAFKA-1464] - Add a throttling option to the Kafka replication tool [KAFKA-3176] - Allow console cons......

局长 ⋅ 2016/10/21 ⋅ 4

Apache Kafka 0.7.1-incubating 发布

Apache Kafka 团队发布了 Kafka 0.7.1-incubating 版本,这是 Kafka 发布的第二个版本。 下载地址: http://incubator.apache.org/kafka/downloads.html 完整改进记录: https://issues.apa...

oschina ⋅ 2012/06/28 ⋅ 0

Apache Kafka 0.8.2.2 发布,分布式发布订阅消息系统

Apache Kafka 0.8.2.2 发布,Bug 修改信息如下: [KAFKA-2189] - Snappy compression of message batches less efficient in 0.8.2.1 [KAFKA-2308] - New producer + Snappy face un-compre......

oschina ⋅ 2015/10/05 ⋅ 2

Kafka 资源分配自动调整系统--Cruise Control

Cruise Control 是首个将 Kafka 群集的动态工作负载重新平衡和自动分配的全自动化系统。通过简化 Kafka 集群的运作,为用户提供了极大的便利。 Cruise Control 是用于持续监视 Kafka 集群并根...

匿名 ⋅ 2017/08/31 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

解决httpclient超时设置不生效的问题

最近公司有项目需要通过http调用第三方服务,且第三方服务偶有超时,故需要设置一定的超时时间防止不响应的情况出现。 初始设置如下: [java] view plain copy //超时设置 RequestConfig re...

Mr_Tea伯奕 ⋅ 8分钟前 ⋅ 0

过滤器Filter和拦截器HandlerInterceptor

过滤器 依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要...

hutaishi ⋅ 13分钟前 ⋅ 0

Redis入门详解(转)

Redis入门详解 Redis简介 Redis安装 Redis配置 Redis数据类型 Redis功能 持久化 主从复制 事务支持 发布订阅 管道 虚拟内存 Redis性能 Redis部署 Redis应用场景 Redis总结 Redis简介: Redi...

xiaoyaoyoufang ⋅ 25分钟前 ⋅ 0

说说javascript中的那些专业名词

DOM(Document Object Model) 文档对象模型 BOM(Browser Object Model) 浏览器对象模型 ECMA(European Computer Manufacturer's Association) 欧洲计算机制造商协会 W3C(World Wide Web Conso......

hang1989 ⋅ 45分钟前 ⋅ 0

Bootstrap Wizard 多步表单控件

废话 有一块需求是 有多步表单 点击下一步时触发验证一个范围内的表单,点击上一步或取消,清空表单并返回第一步,点击最后一步提交整个表单的 就找到了这个插件,本来自己写了一个原生的 fo...

无极之岚 ⋅ 今天 ⋅ 0

如何利用Spring Cloud构建起自我修复型分布式系统

利用Netflix所打造的组件及各类大家熟知的工具,我们完全可以顺利应对由微服务以及分布式计算所带来的技术挑战。 在过去一年当中,微服务已经成为软件架构领域一个炙手可热的新名词,而且我们...

harries ⋅ 今天 ⋅ 0

临近实习前的感想

再过两星期就要开始新的一段实习了,想想去年的这个时候也在实习,心中不免思绪万千,也一直想写对2017做个总结,但一直迟迟没有下笔。 2017年的春节,我就开始准备开学后找份实习。那时候就...

无精疯 ⋅ 今天 ⋅ 0

Spring AOP(面向切面编程)

Spring AOP概念: Spring AOP 可以劫持一个执行的方法,在方法执行之前或之后添加额外的功能。通常情况下,AOP把项目中需要在多处用到的功能,比如日志、安全和事物等集中到一个类中处理,而...

霍淇滨 ⋅ 今天 ⋅ 0

人工智能、机器学习、数据挖掘以及数据分析有什么联系?

人工智能是目前炙手可热的一个领域,所有的互联网公司以及各路大迦们纷纷表态人工智能将是下一个时代的革命性技术,可与互联网、移动互联网时代的变更相媲美;AlphaGo在围棋领域战胜人类最顶...

董黎明 ⋅ 今天 ⋅ 0

使用 vue-cli 搭建项目

vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目,GitHub地址是:https://github.com/vuejs/vue-cli 一、 安装 node.js 首先需要安装node环境,可以直接到中...

初学者的优化 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部