今天在使用python消费kafka时遇到了一些问题, 特记录一下。

场景一、

特殊情况: 单独写程序只用来生产消费数据

开始时间: 10:42

Topic: t_facedec

Partition: 1

程序启动: 168 启动consumer, 158启动consumer, windows机器producer推数据

运行时长: 15分钟

结果:

1、168的consume暂停,158的consumer一直消费

2、10:46分producer停止后重启推数, 158停止消费又开始消费

3、10:49分停止168、158的consumer并按顺序重启, 168消费一些数据之后158开始一直消费

4、后启动的consumer在消费数据

场景二、

特殊场景: 上线程序, 包含人脸识别处理

开始时间: 11:00

Topic: t_facedec

Partition: 1

1、11:46 启动168的conumer消费, 6分钟后日志如下, 未见异常信息

场景二、

特殊场景: 上线程序, 包含人脸识别处理

开始时间: 11:00

Topic: t_facedec

Partition: 1

1、11:46 启动168的conumer消费, 6分钟后日志如下, 未见异常信息

2、 11:53启动158的consumer, 日志如下, 未见异常, 158的consumer加入了组kongzhagen

3、168的consumer发出警告, 心跳失败,因组正在重新平衡

4、windows端启动producer, 168的consumer开始消费数据, 158的consumer没有消费数据

结论: 先启动的consumer会消费数据, 168的consumer关闭后, 158的consumer开始消费

5、半小时后

分解错误图:

9分钟后空连接时间到'connections_max_idle_ms': 540000,

'max_poll_records': 500, 'heartbeat_interval_ms': 3000, 'session_timeout_ms': 30000,

后续:

14:32开始继续生产数据, 数据开始被消费

14:48分再次出现平衡超时

15:02分再次出现平衡超时

原因分析:

1、引起timeout的原因是consumer每3秒触发一次心跳, 由于某种原因在30秒内协调者没有收到此consumer的心跳信息, 认为此consumer已经死掉,topic内的分区在group的成员间重新分配(reblance)

2、默认consumer的每次最大poll数据量为500, 如果处理这500条记录的时候超过了最大时间间隔max_poll_interval_ms, consumer也会退出group, 导致reblance的产生

3、如果consumer没有产生消费行为的时间超过最大值connections_max_idle_ms:540000 (9 min)时, 也会导致consumer退出该组。

解决方法:

1、增加心跳会话超时间隔

session_timeout_ms = 300000(从30改为300秒)

2、减少每次获取任务的数量

max_poll_records = 5(从500改为5)

3、增加空闲连接时间

connections_max_idle_ms=5400000(从9min改为90min)

kafka Auto offset commit faild reblance的更多相关文章

  1. kafka auto.offset.reset参数解析

    kafka auto.offset.reset参数解析 1.latest和earliest区别 2.创建topic 3.生产数据和接收生产数据 4.测试代码 auto.offset.reset关乎ka ...

  2. Kafka auto.offset.reset

    要从头消费kafka的数据,可以通过以下参数: Kafka auto.offset.reset = earliest

  3. kafka之consumer参数auto.offset.reset 0.10+

    https://blog.csdn.net/dingding_ting/article/details/84862776 https://blog.csdn.net/xianpanjia4616/ar ...

  4. kafka的auto.offset.reset详解与测试

    1. 取值及定义 auto.offset.reset有以下三个可选值: latest (默认) earliest none 三者均有共同定义: 对于同一个消费者组,若已有提交的offset,则从提交的 ...

  5. kafka的offset相关知识

    Offset存储模型 由于一个partition只能固定的交给一个消费者组中的一个消费者消费,因此Kafka保存offset时并不直接为每个消费者保存,而是以 groupid-topic-partit ...

  6. 「Kafka」Kafka中offset偏移量提交

    在消费Kafka中分区的数据时,我们需要跟踪哪些消息是读取过的.哪些是没有读取过的.这是读取消息不丢失的关键所在. Kafka是通过offset顺序读取事件的.如果一个消费者退出,再重启的时候,它知道 ...

  7. kafka主题offset各种需求修改方法

    简要:开发中,常常因为需要我们要认为修改消费者实例对kafka某个主题消费的偏移量.具体如何修改?为什么可行?其实很容易,有时候只要我们换一种方式思考,如果我自己实现kafka消费者,我该如何让我们的 ...

  8. Kafka提交offset机制

    在kafka的消费者中,有一个非常关键的机制,那就是offset机制.它使得Kafka在消费的过程中即使挂了或者引发再均衡问题重新分配Partation,当下次重新恢复消费时仍然可以知道从哪里开始消费 ...

  9. kafka_2.11-0.10.2.1中的auto.offset.reset

    在使用spark连接kafka消费topic时,发现无论怎么设置,也无法从头开始消费. 查看配置得出auto.offset.reset的以下3种设置及含义: earliest 当各分区下有已提交的of ...

随机推荐

  1. nginx安装错误:No package nginx available

    出现错误: 1,备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentO ...

  2. AS3.0绘图API

    AS3.0绘图API: /** * * *-------------------* * | *** 绘图API *** | * *-------------------* * * 编辑修改收录:fen ...

  3. CF449E Jzzhu and Squares

    题目大意:有一个$n\times m$的方格图,求其中所有的格点正方形完整包含的小方格个数,多组询问.$n,m\leqslant 10^6$ 题解:令$n\leqslant m$.有一个显然的式子:$ ...

  4. Synchronized 与Lock的不同之处

    Synchronized 与Lock的不同之处 用法不一样.synchronized既可以加在方法上,也可以加载特定的代码块上,括号中表示需要锁的对象.而Lock需要显示地指定起始位置和终止位置.sy ...

  5. JDBC使用8.0驱动包连接mysql设置时区serverTimezone

    驱动包用的是新版 mysql-connector-java-8.0.16.jar新版的驱动类改成了com.mysql.cj.jdbc.Driver新版驱动连接url也有所改动I.指定时区 如果不设置时 ...

  6. Java File类与IO流

    File 类 java.io.File 文件和目录路径名的抽象表示形式, 对文件或目录进行操作 构造方法: File(File parent, String child) : 根据 parent 抽象 ...

  7. iOS - 动态库上架瘦身(去调虚拟机架构),不然验证会报错。

    eg: localhost:改造 M.emor.Y$ lipo WebRTC.framework/WebRTC -thin armv7 -output WebRTC_armv7localhost:改造 ...

  8. C# Microsoft.Office 操作Excel总结

     1.导入命名空间:  using Microsoft.Office.Interop.Excel; 2.如何打开已有excel文档,或者创建一个新的excel文档  Application app = ...

  9. Redis 学习-Redis 的其他功能

    一.慢查询 找到 系统中瓶颈的命令 1. 客户端请求的生命周期: ①. 慢查询通常发生在第三阶段. ②. 客户端超时不一定是慢查询,但慢查询是客户端超时的一个可能因素. 2. 相关配置 慢查询命令会存 ...

  10. UNTIY Canvas

    一.Canvas 组件 Render Mode(渲染模式) (1)Screen Space-Overlay:2D UI,始终显示在屏幕最前方,适合制作HP,MP等(相当于GUI) (2)Screen ...