Flink exactly once sink 实现
复制代码

这不算字吗 你这什么破玩意儿规矩啊,害非得 50 字 123456789101112131415161718192021222324252627282930 我这还不到吗还不到吗还不到吗
版权声明: 本文为 InfoQ 作者【Joseph295】的原创文章。
原文链接:【http://xie.infoq.cn/article/20bf23be17e6632af3d0004dd】。文章转载请联系作者。
本文字数:516 字
阅读完需:约 2 分钟
public class ExactlyOnceSink extends TwoPhaseCommitSinkFunction<String, Transaction, Void> {
// 1. 开始事务
@Override
protected Transaction beginTransaction() {
return externalSystem.beginTransaction(); // 创建外部系统事务
}
// 2. 写入数据(在事务中)
@Override
protected void invoke(Transaction transaction, String value, Context context) {
externalSystem.writeInTransaction(transaction, value);
}
// 3. 预提交(检查点完成前)
@Override
protected void preCommit(Transaction transaction) {
externalSystem.prepareCommit(transaction);
}
// 4. 正式提交(检查点完成后)
@Override
protected void commit(Transaction transaction) {
externalSystem.commit(transaction);
}
// 5. 中止事务
@Override
protected void abort(Transaction transaction) {
externalSystem.rollback(transaction);
}
}
这不算字吗 你这什么破玩意儿规矩啊,害非得 50 字 123456789101112131415161718192021222324252627282930 我这还不到吗还不到吗还不到吗
版权声明: 本文为 InfoQ 作者【Joseph295】的原创文章。
原文链接:【http://xie.infoq.cn/article/20bf23be17e6632af3d0004dd】。文章转载请联系作者。
三脚猫的技术 2018-03-14 加入
coder
促进软件开发及相关领域知识与创新的传播
评论