db2—如何知道在kafka connect从源代码断断续续读取期间是否发生数据丢失问题?

yyyllmsg  于 2021-07-15  发布在  Kafka
关注(0)|答案(0)|浏览(232)

我们正在运行kafka connect,使用汇合jdbc源连接器从db2数据库读取数据。我们会定期在kafka connect日志中看到这样的问题:

kafkaconnect-deploy-prod-967ddfffb-5l4cm 2021-04-23 10:39:43.770 ERROR Failed to run query for table TimestampIncrementingTableQuerier{table="PRODSCHEMA"."VW_PRODVIEW", query='null', topicPrefix='some-topic-prefix-', incrementingColumn='', timestampColumns=[UPDATEDATETIME]}: {} (io.confluent.connect.jdbc.source.JdbcSourceTask:404)
com.ibm.db2.jcc.am.SqlException: DB2 SQL Error: SQLCODE=-668, SQLSTATE=57007, SQLERRMC=1;PRODSCHEMA.SOURCE_TABLE, DRIVER=4.28.11
    at com.ibm.db2.jcc.am.b7.a(b7.java:815)
    ...
    at com.ibm.db2.jcc.am.k7.bd(k7.java:785)
    at com.ibm.db2.jcc.am.k7.executeQuery(k7.java:750)
    at io.confluent.connect.jdbc.source.TimestampIncrementingTableQuerier.executeQuery(TimestampIncrementingTableQuerier.java:200)
    at io.confluent.connect.jdbc.source.TimestampIncrementingTableQuerier.maybeStartQuery(TimestampIncrementingTableQuerier.java:159)
    at io.confluent.connect.jdbc.source.JdbcSourceTask.poll(JdbcSourceTask.java:371)

这似乎是连接到db2的间歇性问题,而且是半预期的;由于超出这个问题范围的原因,我们知道两者之间的网络是不可靠的。
然而,我们试图确定的是,在这种情况下是否可能发生数据丢失。我发现这篇文章讨论了kafka connect中的错误处理,但它只提到由于消息中断而导致的错误,而不是kafka connect和数据源之间的实际连接。
在这种情况下,我们如何知道连接失败是否导致了数据丢失(i、 e.数据源中未针对目标主题进行处理的记录)。Kafka连接日志中是否有错误?kafka connect在出现连接问题时是否总是无限期重试?对它的重试有什么控制吗?
(如果有关系,Kafka连接是2.5版;它以分布式模式部署在kubernetes集群中,但只有一个实际运行的worker/容器。)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题