kafka : Error UNKNOWN_MEMBER_ID occurred while committing offsets for group alert
来源:互联网 发布:mac编辑hosts文件 编辑:程序博客网 时间:2024/06/07 04:00
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>
本地跑消费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超时了。
解决:
- max.partition.fetch.bytes:一次拉取最大byte这个属性 小一点.默认1M
- 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
看来确实在某些时刻,程序无法消费过来,调高一下心跳时间试试:
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
- kafka : Error UNKNOWN_MEMBER_ID occurred while committing offsets for group alert
- kafka : Error UNKNOWN_MEMBER_ID occurred while committing offsets for group alert
- Error UNKNOWN_MEMBER_ID occurred while committing offsets for group ***
- Unexpected error occurred while trying to check for group existence.
- IAR FOR STM8S 错误 An error occurred while retrieving GDI features: gdi-error [40201]解决方法
- Error 25003. Error occurred while initializing fusion
- [DeploymentService:290066]Error occurred while downloading files from admin server for deployment re
- Android Studio 中 An error occurred while creating the AVD.See idea.log for detail
- An error occurred while updating the entries. See the inner exception for details.解决方案
- Error occurred while downloading files from Administration Server for deployment request
- an error occurred while mounting /home 解决方法
- Error occurred while loading modules from classpath
- The error occurred while processing mapper_resultMap[DrugConditionResult]
- Eclipse : An error occurred while filtering resources
- An error occurred while installing system .....github
- The error occurred while setting parameters
- eclipse:an error occurred while filtering resources
- an error occurred while processing the directive
- PHP随机插入字符串到HTML中,跳过HTML标签
- android librtmp 推送h264流 aac流 基本过程总结三 移植faac
- Ubuntu16.10之间ssh连接设置
- 复选框 单选框 样式
- selenium操作隐藏的元素
- kafka : Error UNKNOWN_MEMBER_ID occurred while committing offsets for group alert
- 自定义View添加到Viewgroup中layoutparams为空的记录
- Java基础学习总结(104)——多线程、并发、工具类相关的面试题
- JAVA打包xml成zip保存在服务器任意位置,并能在页面进行点击下载
- 以太网安全之企业网络的西电捷通TLSec解决方案
- C++浅拷贝与深拷贝的问题解析
- Mongodb笔记
- sql 判断某列是小数
- Python学习笔记(五)—集合(set)