consumer.setCommitOffsetsOnCheckpoints(false);
注意:true是默认,我们先将其改为false验证
第一次:
打包后,两种方式上线
1 bin/flink run -c com.xx.data.xx.test.TestOrderMain /root/software/data2.jar
正常启动后,会消费kafka的最新一条之前未消费的数据A,并且mongdb库也有了这条数据的统计信息,然后点击页面的cancle按钮,接着进行第2)步
2 bin/flink run -c com.xx.data.xx.test.TestOrderMain /root/software/data2.jar,我们继续用此命令正常启动job,发现还是会消费kafka的最新消息A,然后仍然会插入到mongdb库中,然后点击页面的cancle按钮,接着进行第3)步
3 bin/flink run -s /root/data/flink-1.7.2/chk/8ec767f72ae319aa1bda0d4f876953eb/chk-3/_metadata -c com.xx.data.xx.test.TestOrderMain /root/software/data2.jar,我们换种方式,用checkpoint启动,会发现尽然不消费这条A信息了,说明kafka offset的信息存储在chk中,但是没有提交给kafka
第二次:
我们将
consumer.setCommitOffsetsOnCheckpoints(false);
改为
consumer.setCommitOffsetsOnCheckpoints(true);
打包后,两种方式上线
1 bin/flink run -c com.xx.data.xx.test.TestOrderMain /root/software/data2.jar
正常启动后,会消费kafka的最新一条之前未消费的数据A,并且mongdb库也有了这条数据的统计信息,然后点击页面的cancle按钮,接着进行第2)步