flink精准一次性消费问题

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

flink精准一次性消费问题

胡云川
>Hi,
>在使用flink往kafka写入数据时,使用了EXACTLY-ONCE,但是
>在debug测试的时候,发现数据在invoke方法里的traction.producer.send()的时候数据就已经传过去了,没有通过precommit和commit方法
>请问大家可以解释一下吗?谢谢!
Reply | Threaded
Open this post in threaded view
|

回复:flink精准一次性消费问题

Yichao Yang
Hi


sink  为kafka时,需要kafka版本大于1.0,并且kafka端也要开启两阶段提交功能才能满足EXACTLY-ONCE。可以检查下你的配置是否都满足。


Best,
Yichao Yang




------------------ 原始邮件 ------------------
发件人:&nbsp;"胡云川"<[hidden email]&gt;;
发送时间:&nbsp;2020年6月10日(星期三) 下午2:25
收件人:&nbsp;"user-zh"<[hidden email]&gt;;

主题:&nbsp;flink精准一次性消费问题



&amp;gt;Hi,
&amp;gt;在使用flink往kafka写入数据时,使用了EXACTLY-ONCE,但是
&amp;gt;在debug测试的时候,发现数据在invoke方法里的traction.producer.send()的时候数据就已经传过去了,没有通过precommit和commit方法
&amp;gt;请问大家可以解释一下吗?谢谢!
Reply | Threaded
Open this post in threaded view
|

回复:flink精准一次性消费问题

Cayden chen
In reply to this post by 胡云川
这个要看你消费者设置的隔离级别,read uncommit 和read commint.
read uncommit 的话,flink未commit,那么就是消费不到数据的。
read commit的话,就可以消费到数据




------------------&nbsp;原始邮件&nbsp;------------------
发件人:&nbsp;"胡云川"<[hidden email]&gt;;
发送时间:&nbsp;2020年6月10日(星期三) 下午2:25
收件人:&nbsp;"user-zh"<[hidden email]&gt;;

主题:&nbsp;flink精准一次性消费问题



&amp;gt;Hi,
&amp;gt;在使用flink往kafka写入数据时,使用了EXACTLY-ONCE,但是
&amp;gt;在debug测试的时候,发现数据在invoke方法里的traction.producer.send()的时候数据就已经传过去了,没有通过precommit和commit方法
&amp;gt;请问大家可以解释一下吗?谢谢!
Reply | Threaded
Open this post in threaded view
|

Re:flink精准一次性消费问题

Meng Wang
In reply to this post by Yichao Yang
kafka 从 0.11.0 开始支持事务写,在 flink 中如果开启了 EXACTLY-ONCE,数据会先 send 到 kafka,但在未调用 commit 之前,这部分数据是数据是属于未完成事务的数据,站在 kafka 的角度,数据还是会存储下来的,只不过下游在消费的时候,根据  isolation.level 设置来决定是否能消费到未 commit 的数据。


---
Best,
Matt Wang


On 06/10/2020 14:28,Yichao Yang<[hidden email]> wrote:
Hi


sink&nbsp; 为kafka时,需要kafka版本大于1.0,并且kafka端也要开启两阶段提交功能才能满足EXACTLY-ONCE。可以检查下你的配置是否都满足。


Best,
Yichao Yang




------------------&nbsp;原始邮件&nbsp;------------------
发件人:&nbsp;"胡云川"<[hidden email]&gt;;
发送时间:&nbsp;2020年6月10日(星期三) 下午2:25
收件人:&nbsp;"user-zh"<[hidden email]&gt;;

主题:&nbsp;flink精准一次性消费问题



&amp;gt;Hi,
&amp;gt;在使用flink往kafka写入数据时,使用了EXACTLY-ONCE,但是
&amp;gt;在debug测试的时候,发现数据在invoke方法里的traction.producer.send()的时候数据就已经传过去了,没有通过precommit和commit方法
&amp;gt;请问大家可以解释一下吗?谢谢!
Reply | Threaded
Open this post in threaded view
|

回复:flink精准一次性消费问题

胡云川
&gt;Hi
&gt;这些问题都已经排查过了,
&gt;有一个问题,在做exctly-once的时候,
&gt;checkpoint的配置有什么要求吗?
&gt;还有就是kafka的事务提交多久能提交一次,可配置吗?
&gt;望解答,谢谢各位!






------------------&nbsp;原始邮件&nbsp;------------------
发件人:&nbsp;"Matt Wang"<[hidden email]&gt;;
发送时间:&nbsp;2020年6月10日(星期三) 晚上7:39
收件人:&nbsp;"[hidden email]"<[hidden email]&gt;;

主题:&nbsp;Re:flink精准一次性消费问题



kafka 从 0.11.0 开始支持事务写,在 flink 中如果开启了 EXACTLY-ONCE,数据会先 send 到 kafka,但在未调用 commit 之前,这部分数据是数据是属于未完成事务的数据,站在 kafka 的角度,数据还是会存储下来的,只不过下游在消费的时候,根据&nbsp; isolation.level 设置来决定是否能消费到未 commit 的数据。


---
Best,
Matt Wang


On 06/10/2020 14:28,Yichao Yang<[hidden email]&gt; wrote:
Hi


sink&amp;nbsp; 为kafka时,需要kafka版本大于1.0,并且kafka端也要开启两阶段提交功能才能满足EXACTLY-ONCE。可以检查下你的配置是否都满足。


Best,
Yichao Yang




------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
发件人:&amp;nbsp;"胡云川"<[hidden email]&amp;gt;;
发送时间:&amp;nbsp;2020年6月10日(星期三) 下午2:25
收件人:&amp;nbsp;"user-zh"<[hidden email]&amp;gt;;

主题:&amp;nbsp;flink精准一次性消费问题



&amp;amp;gt;Hi,
&amp;amp;gt;在使用flink往kafka写入数据时,使用了EXACTLY-ONCE,但是
&amp;amp;gt;在debug测试的时候,发现数据在invoke方法里的traction.producer.send()的时候数据就已经传过去了,没有通过precommit和commit方法
&amp;amp;gt;请问大家可以解释一下吗?谢谢!
Reply | Threaded
Open this post in threaded view
|

回复:flink精准一次性消费问题

蒋佳成(Jiacheng Jiang)
checkpoint完成通知里提交的事务




------------------&nbsp;原始邮件&nbsp;------------------
发件人: "胡云川"<[hidden email]&gt;;
发送时间: 2020年6月11日(星期四) 下午4:56
收件人: "user-zh"<[hidden email]&gt;;
主题: 回复:flink精准一次性消费问题



&amp;gt;Hi
&amp;gt;这些问题都已经排查过了,
&amp;gt;有一个问题,在做exctly-once的时候,
&amp;gt;checkpoint的配置有什么要求吗?
&amp;gt;还有就是kafka的事务提交多久能提交一次,可配置吗?
&amp;gt;望解答,谢谢各位!






------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
发件人:&amp;nbsp;"Matt Wang"<[hidden email]&amp;gt;;
发送时间:&amp;nbsp;2020年6月10日(星期三) 晚上7:39
收件人:&amp;nbsp;"[hidden email]"<[hidden email]&amp;gt;;

主题:&amp;nbsp;Re:flink精准一次性消费问题



kafka 从 0.11.0 开始支持事务写,在 flink 中如果开启了 EXACTLY-ONCE,数据会先 send 到 kafka,但在未调用 commit 之前,这部分数据是数据是属于未完成事务的数据,站在 kafka 的角度,数据还是会存储下来的,只不过下游在消费的时候,根据&amp;nbsp; isolation.level 设置来决定是否能消费到未 commit 的数据。


---
Best,
Matt Wang


On 06/10/2020 14:28,Yichao Yang<[hidden email]&amp;gt; wrote:
Hi


sink&amp;amp;nbsp; 为kafka时,需要kafka版本大于1.0,并且kafka端也要开启两阶段提交功能才能满足EXACTLY-ONCE。可以检查下你的配置是否都满足。


Best,
Yichao Yang




------------------&amp;amp;nbsp;原始邮件&amp;amp;nbsp;------------------
发件人:&amp;amp;nbsp;"胡云川"<[hidden email]&amp;amp;gt;;
发送时间:&amp;amp;nbsp;2020年6月10日(星期三) 下午2:25
收件人:&amp;amp;nbsp;"user-zh"<[hidden email]&amp;amp;gt;;

主题:&amp;amp;nbsp;flink精准一次性消费问题



&amp;amp;amp;gt;Hi,
&amp;amp;amp;gt;在使用flink往kafka写入数据时,使用了EXACTLY-ONCE,但是
&amp;amp;amp;gt;在debug测试的时候,发现数据在invoke方法里的traction.producer.send()的时候数据就已经传过去了,没有通过precommit和commit方法
&amp;amp;amp;gt;请问大家可以解释一下吗?谢谢!
Reply | Threaded
Open this post in threaded view
|

Re: flink精准一次性消费问题

tison
>checkpoint的配置有什么要求吗?

配成 EXACTLY_ONCE

>还有就是kafka的事务提交多久能提交一次,可配置吗?

chk 的时候提交,这里面深究的话有点并发问题,可以看 TwoPhaseCommitSink 的细节
配置这个事儿...有能力自定义,但是为啥要这么做呢呢

Best,
tison.


蒋佳成(Jiacheng Jiang) <[hidden email]> 于2020年6月11日周四 下午4:59写道:

> checkpoint完成通知里提交的事务
>
>
>
>
> ------------------&nbsp;原始邮件&nbsp;------------------
> 发件人: "胡云川"<[hidden email]&gt;;
> 发送时间: 2020年6月11日(星期四) 下午4:56
> 收件人: "user-zh"<[hidden email]&gt;;
> 主题: 回复:flink精准一次性消费问题
>
>
>
> &amp;gt;Hi
> &amp;gt;这些问题都已经排查过了,
> &amp;gt;有一个问题,在做exctly-once的时候,
> &amp;gt;checkpoint的配置有什么要求吗?
> &amp;gt;还有就是kafka的事务提交多久能提交一次,可配置吗?
> &amp;gt;望解答,谢谢各位!
>
>
>
>
>
>
> ------------------&amp;nbsp;原始邮件&amp;nbsp;------------------
> 发件人:&amp;nbsp;"Matt Wang"<[hidden email]&amp;gt;;
> 发送时间:&amp;nbsp;2020年6月10日(星期三) 晚上7:39
> 收件人:&amp;nbsp;"[hidden email]"<[hidden email]&amp;gt;;
>
> 主题:&amp;nbsp;Re:flink精准一次性消费问题
>
>
>
> kafka 从 0.11.0 开始支持事务写,在 flink 中如果开启了 EXACTLY-ONCE,数据会先 send 到 kafka,但在未调用
> commit 之前,这部分数据是数据是属于未完成事务的数据,站在 kafka
> 的角度,数据还是会存储下来的,只不过下游在消费的时候,根据&amp;nbsp; isolation.level 设置来决定是否能消费到未 commit
> 的数据。
>
>
> ---
> Best,
> Matt Wang
>
>
> On 06/10/2020 14:28,Yichao Yang<[hidden email]&amp;gt; wrote:
> Hi
>
>
> sink&amp;amp;nbsp;
> 为kafka时,需要kafka版本大于1.0,并且kafka端也要开启两阶段提交功能才能满足EXACTLY-ONCE。可以检查下你的配置是否都满足。
>
>
> Best,
> Yichao Yang
>
>
>
>
> ------------------&amp;amp;nbsp;原始邮件&amp;amp;nbsp;------------------
> 发件人:&amp;amp;nbsp;"胡云川"<[hidden email]&amp;amp;gt;;
> 发送时间:&amp;amp;nbsp;2020年6月10日(星期三) 下午2:25
> 收件人:&amp;amp;nbsp;"user-zh"<[hidden email]&amp;amp;gt;;
>
> 主题:&amp;amp;nbsp;flink精准一次性消费问题
>
>
>
> &amp;amp;amp;gt;Hi,
> &amp;amp;amp;gt;在使用flink往kafka写入数据时,使用了EXACTLY-ONCE,但是
>
> &amp;amp;amp;gt;在debug测试的时候,发现数据在invoke方法里的traction.producer.send()的时候数据就已经传过去了,没有通过precommit和commit方法
> &amp;amp;amp;gt;请问大家可以解释一下吗?谢谢!