kafka : Error UNKNOWN_MEMBER_ID occurred while committing offsets for group alert

来源:互联网 发布:商建刚 知产 编辑:程序博客网 时间:2024/06/07 07:11

2017-05-16最新:

经过2天的折腾,总算是解决了这个问题。 
1.最开始遇到这个问题,总结为网络原因,可能确实是网络原因,但是需要解决。因此希望调大session.timeout,但是服务端没有设置,导致客户端无法调超过30s,所以没法调高超时时间等。而且感觉这个治标不治本!

2.尝试调低一次拉取的最大值,从而减少一次处理的条数。确实有收益,但是还需要继续!

3.尝试发现处理一条数据过程中耗时最久的一步,优化之。这次找到源头所在,处理逻辑中有一步是HTTP请求,这步有一些耗时25ms(batch commit?),当一次消费3W条数据(fetch size :5M),这步就非常耗时,并且某些时候可能会有网络原因导致阻塞?所以就导致了整个poll循环出现本文的问题。发现方法:注释掉sendKafka().解决方法:sendKafka()改为异步处理,send()只是put in memory BlockQueue。

这次基本算是解决了问题。另外中途遇到了:faild allocate memory within max.bolck.ms

解决: 
batch.size 1024 -> 10240 
max.block.ms 1000不变 
buffer.memory 4096 -> 40960

总结:这个问题是必然报出来的,因为确实不该在poll循环里面做非常耗时的、不稳定的逻辑.一定要注意一切有关网络开销、数据库等的。

附.消费者配置

    <prop key="bootstrap.servers">${kafka.event.host}</prop>    <prop key="retries">${metric.report.kafka.retries:3}</prop>    <prop key="batch.size">${metric.report.kafka.batch.size:10240}</prop>    <prop key="max.block.ms">${metric.report.kafka.max.block.ms:1000}</prop>    <prop key="linger.ms">${metric.report.kafka.linger.ms:100}</prop>    <prop key="buffer.memory">${metric.report.kafka.buffer.memory:40960}</prop>    <prop key="key.serializer">org.apache.kafka.common.serialization.StringSerializer</prop>    <prop key="value.serializer">org.apache.kafka.common.serialization.StringSerializer</prop>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

本地跑消费kafka数据,发现ERROR,网上找到这个哥们的: 
http://stackoverflow.com/questions/38394662/error-unknown-member-id-occurred-while-committing-offsets-for-group-xxx

https://cwiki.apache.org/confluence/display/KAFKA/KIP-41%3A+KafkaConsumer+Max+Records

大概意思就是说消费不过来,数据太大。自动commit超时了。 
解决:

  1. max.partition.fetch.bytes:一次拉取最大byte这个属性 小一点.默认1M
  2. session.timeout.ms:超时时间设置大一点

准备改的时候,想了一想,先看看我这程序能处理多少,结果一跑起来才发现,压根不是程序的锅。本地网络波动导致的!因为这个线程没用到Redis,但是这个异常每次都和redis timeout一起报, 
我设置的 poll(100 ms). max.partition.fetch.bytes没设置,默认1M, 
然后打印了消费5000条数据情况下耗时,是1s。所以白担心了一场,不过也学到了一些东西。


总结:

遇到错不一定就是程序的锅。其他环境、引用都有可能导致ERROR!!!

kafka客户端性能优化参考: 
http://www.jianshu.com/p/4e00dff97f39


2017-05-15

今天部署到服务器又报这个异常,

2017-05-12 11:17:07,553 [pool-1-thread-1] WARN org.apache.kafka.clients.consumer.internals.ConsumerCoordinator:445 - Auto offset commit failed:                                          2017-05-12 11:17:07,554 [pool-1-thread-1] INFO org.apache.kafka.clients.consumer.internals.AbstractCoordinator:354 - Attempt to join group alert failed due to unknown member id, resetting and retrying.                                                                                                                                                                         2017-05-15 02:03:23,737 [pool-1-thread-1] INFO org.apache.kafka.clients.consumer.internals.AbstractCoordinator:623 - Attempt to heart beat failed since the group is rebalancing, try to re-join group.                                                                                                                                                                           2017-05-15 02:03:49,150 [pool-1-thread-1] INFO org.apache.kafka.clients.consumer.internals.AbstractCoordinator:623 - Attempt to heart beat failed since the group is rebalancing, try to re-join group.                                                                                                                                                                           2017-05-15 02:05:09,154 [pool-1-thread-1] INFO org.apache.kafka.clients.consumer.internals.AbstractCoordinator:623 - Attempt to heart beat failed since the group is rebalancing, try to 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

看来确实在某些时刻,程序无法消费过来,调高一下心跳时间试试:

heartbeat.interval.ms 25000 》 60000

参考文章: 
http://blog.csdn.net/xianzhen376/article/details/51802736

Kafka源码深度解析-序列7 -Consumer -coordinator协议与heartbeat实现原理 
http://blog.csdn.net/chunlongyu/article/details/52791874

http://blog.csdn.net/stark_summer/article/details/50203133

转载于:http://blog.csdn.net/jinzhencs/article/details/71713707

阅读全文
0 0
原创粉丝点击