分享

求助:kafka producer问题

m331283153 发表于 2017-6-15 10:28:11 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 9 23330
我有一个0.10的kafka集群,通过端口映射到外网,有9个生产者程序在外网向集群发布消息,开始我用kafka-client0.10的jar包时,有3个生产者报errmsg:Failed to update metadata after 60000 ms错误,换成kafka-client0.8.2的jar包时就可以发布成功,但是过一段时间后生产者的吞吐量变的特别低,最后报错
5447483 [kafka-producer-network-thread | producer-12] WARN org.apache.kafka.common.network.Selector - Error in I/O with actkafka109
java.io.IOException: 连接超时
at sun.nio.ch.FileDispatcherImpl.read0(Native Method)
at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
at sun.nio.ch.IOUtil.read(IOUtil.java:197)
at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
at org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:60)
at org.apache.kafka.common.network.Selector.poll(Selector.java:248)
at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:192)
at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:191)
at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:122)
at java.lang.Thread.run(Thread.java:745)
5447483 [kafka-producer-network-thread | producer-12] WARN org.apache.kafka.clients.producer.internals.Sender - Got error produce response with correlation id 122988 on topic-partition cname_dns-24, retrying (2 attempts left). Error: NETWORK_EXCEPTION
5447483 [kafka-producer-network-thread | producer-12] WARN org.apache.kafka.clients.producer.internals.Sender - Got error produce response with correlation id 122988 on topic-partition cname_dns-8, retrying (2 attempts left). Error: NETWORK_EXCEPTION
重启生产者后又可以跑一段时间
这个问题纠结我好久了

已有(9)人评论

跳转到指定楼层
nextuser 发表于 2017-6-15 13:59:35
不知道楼主是否看到发送的数据,消费者数据是否接受成功。
可能一开始就没成功,后面都是在尝试。
advertised.host.name这个参数是否配置了。
参数解释:
在server.properties 有一个参数, advertised.host.name 参数用来配置返回的host.name值,把这个参数配置为外网IP地址。
这个参数默认没有启用,默认是返回的 java.net.InetAddress.getCanonicalHostName 的值,这个值并不等于 hostname 的值而是返回IP,但在linux上这个值就是 hostname 的值。

回复

使用道具 举报

m331283153 发表于 2017-6-15 15:18:43
nextuser 发表于 2017-6-15 13:59
不知道楼主是否看到发送的数据,消费者数据是否接受成功。
可能一开始就没成功,后面都是在尝试。
advert ...

用0.8的jar包确实发送成功了,在集群可以看到数据进来
回复

使用道具 举报

nextuser 发表于 2017-6-15 15:46:41
m331283153 发表于 2017-6-15 15:18
用0.8的jar包确实发送成功了,在集群可以看到数据进来

那就奇怪了,是部分出现这个问题吗?那就看下actkafka109这台机器跟其它有什么区别。

回复

使用道具 举报

m331283153 发表于 2017-6-15 17:20:08
nextuser 发表于 2017-6-15 15:46
那就奇怪了,是部分出现这个问题吗?那就看下actkafka109这台机器跟其它有什么区别。

有三个生产者出这个问题,其他的生产者都是正常的,一样的程序一样的配置 ,有时报actkafka109这个节点,有时报其他的节点,真是诡异被这问题折磨一个星期了
回复

使用道具 举报

arsenduan 发表于 2017-6-15 17:47:43
m331283153 发表于 2017-6-15 17:20
有三个生产者出这个问题,其他的生产者都是正常的,一样的程序一样的配置 ,有时报actkafka109这个节点, ...

如果这样的话,那就不是配置文件的问题了。可以在观察下,得出一个确定的规律
回复

使用道具 举报

m331283153 发表于 2017-6-15 18:17:22
arsenduan 发表于 2017-6-15 17:47
如果这样的话,那就不是配置文件的问题了。可以在观察下,得出一个确定的规律

是这样的,这三个生产者用0.10的kafka-client包数据都发不出去,换成0.8.2的包后数据可以发出去,但是过一段时间后(有时一两个小时,有时半天的时间)吞吐量变的特别低,只有几百k每秒,过一会就出Error: NETWORK_EXCEPTION的错误,重启后又可以跑一段时间
回复

使用道具 举报

nextuser 发表于 2017-6-15 19:40:56
m331283153 发表于 2017-6-15 18:17
是这样的,这三个生产者用0.10的kafka-client包数据都发不出去,换成0.8.2的包后数据可以发出去,但是过 ...

设置下这个参数connections.max.idle.ms 默认应该是10分钟,把它设置更大一些,再看看

回复

使用道具 举报

m331283153 发表于 2017-6-16 09:12:37
nextuser 发表于 2017-6-15 19:40
设置下这个参数connections.max.idle.ms 默认应该是10分钟,把它设置更大一些,再看看

这个我设置过了,我设置成了一年
回复

使用道具 举报

w123aw 发表于 2017-6-16 15:41:27
m331283153 发表于 2017-6-16 09:12
这个我设置过了,我设置成了一年

kafka0.8可能存在这么个issue
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条