看了一下 TwoPhaseCommitSinkFunction ,因为我测试的时候是自己写的Sink,没有继承这个Sink去实现,所以是我的问题。谢谢



[email protected]
 
发件人: [email protected]
发送时间: 2020-06-20 09:54
收件人: user-zh
抄送: yungao.gy >
主题: Re: Re: Flink 多Sink 数据一致性保证
Hello: 
     我手动试了一下,一个Sink的抛异常是不会影响另外一个Sink的写入的。
     引用: 按二阶段提交的逻辑,这种情况下kafka这边的事务也会被abort掉,数据不会真正写入。
     这个是需要手动开启吗?



[email protected]
 
发件人: [email protected]>Gao
发送时间: 2020-06-19 15:21
收件人: [email protected]; user-zh
主题: Re: Flink 多Sink 数据一致性保证
Hello,
 
    
我理解多个sink的情况下,数据保证写入仍然发生在数据写入后的checkpoint完成,如果写入Hbase这边写入失败的时候会触发failover的话,按二阶段提交的逻辑,这种情况下kafka这边的事务也会被abort掉,数据不会真正写入。
 
 
------------------Original Mail ------------------
Sender:[email protected] <[email protected]>
Send Date:Thu Jun 18 19:39:46 2020
Recipients:user-zh <[email protected]>
Subject:Flink 多Sink 数据一致性保证
 
 
 
如上图所示,目前通过把作业加入多个sink,这种场景下面当hbase写入的失败的时候,不影响kakfa的写入。期望hbase写入失败,kafka也不发送。
如何保证hbase和kafka的写入为原子性呢?
不知道flink是否有多sink的二阶段提交方案。
 
 
 
[email protected]

回复