Apache kafka 卡夫卡连接:停止任务,是否提交偏移量
我在kafka任务实现中有如下代码。对于关键异常,我希望在任务中调用Apache kafka 卡夫卡连接:停止任务,是否提交偏移量,apache-kafka,apache-kafka-connect,Apache Kafka,Apache Kafka Connect,我在kafka任务实现中有如下代码。对于关键异常,我希望在任务中调用stop(),并停止任务 我需要知道我是否转到stop()kafka connect是否提交kafka主题分区中的偏移量?i、 e.如果我处理我的异常,记录它,根据异常执行一些活动,并调用stop(),是否因为put()没有异常而提交了主题的偏移量(应用程序主题)?我之所以这样假设,是因为没有从put()成功运行,或者批处理(基于最大轮询记录)的偏移量没有完成,所以重试时,不会丢失任何记录。请让我知道,如果没有承诺补偿,是否有人
stop()
,并停止任务
我需要知道我是否转到stop()
kafka connect是否提交kafka主题分区中的偏移量?i、 e.如果我处理我的异常,记录它,根据异常执行一些活动,并调用stop()
,是否因为put()
没有异常而提交了主题的偏移量(应用程序主题)?我之所以这样假设,是因为没有从put()
成功运行,或者批处理(基于最大轮询记录)的偏移量没有完成,所以重试时,不会丢失任何记录。请让我知道,如果没有承诺补偿,是否有人可以提供建议
代码:
public class ExampleSinkTask extends SinkTask {
@Override
public void start(Map<String, String> map) {
....
}
@Override
private void doSomeCriticalOperation() {
// call stop if critical operation fails.
...
// Exception handled, close the task (allow user interference in such cases)
stop();
}
@Override
public void put(Collection<SinkRecord> collection) {
..
doSomeCriticalOperation();
..
}
@Override
public void stop() {
log.info("*** Stopping Kafka task completely ***");
System.exit(0);
}
}
公共类ExampleSinkTask扩展了SinkTask{
@凌驾
公共无效开始(映射){
....
}
@凌驾
私有无效doSomeCriticalOperation(){
//如果关键操作失败,则调用stop。
...
//异常已处理,请关闭任务(在这种情况下允许用户干预)
停止();
}
@凌驾
公开作废认沽期权(托收){
..
doSomeCriticalOperation();
..
}
@凌驾
公共停车场(){
log.info(“***完全停止卡夫卡任务***”);
系统出口(0);
}
}
此问题的可能重复之处在于调用stop()时的偏移量提交。