是的,社区现在正在加exactly-oncer jdbc sink实现[1]。

另外,如果要实现两阶段提交的sink的话,总是需要有能跨session的transaction机制,就是在作业挂了之后,下次起来的时候这个事务还可以abort掉或者继续提交(取决于是否已经snapshot过了)。像jdbc必须要用xa事务,用单纯的jdbc事务应该就是有问题的,因为即使在snapshot的时候precommit过了,如果作业挂掉连接中断这个事务仍然会被abort掉。


[1] https://issues.apache.org/jira/browse/FLINK-15578

------------------------------------------------------------------
Sender:jindy_liu<[email protected]>
Date:2020/07/13 10:49:27
Recipient:<[email protected]>
Theme:Re: Re: Re: Flink 多Sink 数据一致性保证

原理大概理解了,想自己实现一个。比如kafka与mysql的实现,并想最大程度的复用些代码。
看了下源码,感觉要把现在的connector(kafka,
jdbc)中的代码都看一下,然后扣出来,再去按twophasecommitsinkfunction的实现,重组一些代码,一个个方法实现。
另外问一下,好像现在源码里的jdbc只是at-least-once实现?



--
Sent from: http://apache-flink.147419.n8.nabble.com/

回复