使用Debezium的1.9.0.Final版本经常跑着跑着发生npe的问题,然后导致任务挂掉:
2022-09-20 10:07:03.224 [pool-4-thread-18] ERROR io.debezium.embedded.EmbeddedEngine-Errorwhiletryingtorunconnectorclass"io.debezium.connector.mysal.MySalConnector'
org.apache.kafka.connect.errors.ConnectException: An exception occurred in the change event producer. This connector will be stopped.
at io.debezium.pipeline.ErrorHandler.setProducerThrowable(ErrorHandler.java:50)
atio.debezium.connector.mysal.MySqlStreamingChangeEventSource.handleEvent(wySalStreamingChangeEventsource.java:374301
at io. debezium. connector .mysql.MySqlStreamingChangeEventSource. lambda$execute$25(MySqlStreamingChangeEventSource. java: 874)
at com.github.shyiko.mysql.binlog.BinaryLogClient.notifyEventListeners(BinaryLogClient.java:1125)
at com.github.shyiko.mysql.binlog.BinaryLogClient.listenForEventPackets(BinaryLogClient.java:973)
at com.github.shyiko.mysql.binlog.BinaryLogClient.connect(BinaryLogClient.java:599)
at com.github.shyiko.mysql.binlog.BinaryLogClient$7.run(BinaryLogClient.java:857)
at java.lang.Thread.run(Thread. java:748)
Caused by: io.debezium. DebeziumException: Error processing binlog event
7 common frames omitted
Caused by: java.lang. NullPointerException: null
nan)
nan)
nan)
atio.debezium.pipeline.source.snapshot.incremental.AbstractIncrementalSnapshotChangeEventSource.processSchemaChange(AbstractIncrementalSnapshotChangeEventSource.java:105)
¿nan)
at io.debezium.pipeline.EventDispatcher.dispatchSchemaChangeEvent(EventDispatcher.java:312)
at to. deberium corrector: mwsal: My sol StreaminaChangeEventsource,/handelveryevertel,Sa/StracminoChangefventource-itove-5300.09
at io.debezium.connector.mysal.MySalStreamingChangeEventSource.Lambda$execute$14(MySalStreamingChangeEventSource.java:846)
at io.debezium.connector.mysql.MySqlStreamingChangeEventSource.handleEvent(MySqlStreamingChangeEventSource.java:354)
6 common frames omitted
2022-09-20 10:07:03.224 [pool-4-thread-18] INFO io.debezium.embedded.EmbeddedEngine-Stoppingtheembeddedengine
2022-09-20 10:07:03.224 [p001-4-thread-18] INFO org.apache.kafka.clients.producer.KafkaProducer-[Producer clientId-producer-19] Closing the Kafka producer with timeoutMillis = 92
23372036854775807 ms.
最终通过追踪源码,定位到是一个简单的null值判断,修复后,问题解决。