Timeout expired after 60000milliseconds while awaiting InitProducerId

本文探讨了Flink任务在使用Kafka两阶段提交时遇到的检查点保存失败问题。问题可能源于Kafka事务配置不合理。解决方案包括取消两阶段提交或者调整Kafka的transaction.state.log.replication.factor和transaction.state.log.min.isr配置。修改配置后,事务提交得以正常进行,避免了检查点失败。
摘要由CSDN通过智能技术生成

在这里插入图片描述
在这里插入图片描述

问题描述:

使用两阶段提交写kafka,Flink任务一直重试,检查点一直无法保存

导致原因:(个人猜测)

Kafka的两阶段提交涉及到事务,kafka的配置文件中可能对事务相关配置不合理,导致两阶段的预提交阶段完成后,无法正式提交,以至于检查点一直无法成功保存。

解决方法:

方法1:

如果对准确性要求不太严格,可以尝试去掉kafka的两阶段提交。

方法2:

可以修改kafka的配置文件(目前只在测试集群进行了测试)
在这里插入图片描述

事务相关的配置,可以将transaction.state.log.replication.factor调整为3(默认的初始值为1),transaction.state.log.min.isr的值调为2(默认初始值为1),修改配置文件后重启kafka,再使用两阶段提交不在出现上述问题。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值