Flink使用Kafka作为source时checkpoint成功提交offset的机制

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

Flink使用Kafka作为source时checkpoint成功提交offset的机制

shuwen zhou
大家好,请教一个问题,
当Flink在使用Kafka作为source,并且checkpoint开启时,提交的offset是在消息被链路最后一个算子处理之后才会把这条offset提交吗?
还是说这个消息只要从Kafka source读取后,不论链路处理到哪个算子, checkpoint成功时就会把它的offset提交呢?

另外有大神指路这段代码具体在哪个文件吗?
谢谢!

--
Best Wishes,
Shuwen Zhou
Reply | Threaded
Open this post in threaded view
|

RE: Flink使用Kafka作为source时checkpoint成功提交offset的机制

venn
checkpoint成功时就会把它的offset提交,可以看下这个类:  FlinkKafkaConsumerBase  的 这个方法: notifyCheckpointComplete

-----Original Message-----
From: user-zh-return-5976-wxchunjhyy=[hidden email] <user-zh-return-5976-wxchunjhyy=[hidden email]> On Behalf Of shuwen zhou
Sent: 2020年7月29日 14:24
To: [hidden email]
Subject: Flink使用Kafka作为source时checkpoint成功提交offset的机制

大家好,请教一个问题,
当Flink在使用Kafka作为source,并且checkpoint开启时,提交的offset是在消息被链路最后一个算子处理之后才会把这条offset提交吗?
还是说这个消息只要从Kafka source读取后,不论链路处理到哪个算子, checkpoint成功时就会把它的offset提交呢?

另外有大神指路这段代码具体在哪个文件吗?
谢谢!

--
Best Wishes,
Shuwen Zhou
Reply | Threaded
Open this post in threaded view
|

Re: Flink使用Kafka作为source时checkpoint成功提交offset的机制

shuwen zhou
比如读到一条offset值为100的消息,有Kafka Consumer source,一个Process算子和一个Sink算子
那么在这条消息到达Process算子,还未到达Sink算子时,提交offset是100吗?

On Wed, 29 Jul 2020 at 14:51, venn <[hidden email]> wrote:

> checkpoint成功时就会把它的offset提交,可以看下这个类:  FlinkKafkaConsumerBase  的 这个方法:
> notifyCheckpointComplete
>
> -----Original Message-----
> From: user-zh-return-5976-wxchunjhyy=[hidden email]
> <user-zh-return-5976-wxchunjhyy=[hidden email]> On Behalf Of
> shuwen zhou
> Sent: 2020年7月29日 14:24
> To: [hidden email]
> Subject: Flink使用Kafka作为source时checkpoint成功提交offset的机制
>
> 大家好,请教一个问题,
>
> 当Flink在使用Kafka作为source,并且checkpoint开启时,提交的offset是在消息被链路最后一个算子处理之后才会把这条offset提交吗?
> 还是说这个消息只要从Kafka source读取后,不论链路处理到哪个算子, checkpoint成功时就会把它的offset提交呢?
>
> 另外有大神指路这段代码具体在哪个文件吗?
> 谢谢!
>
> --
> Best Wishes,
> Shuwen Zhou
>


--
Best Wishes,
Shuwen Zhou <http://www.linkedin.com/pub/shuwen-zhou/57/55b/599/>
Reply | Threaded
Open this post in threaded view
|

RE: Flink使用Kafka作为source时checkpoint成功提交offset的机制

venn
可以这样理解,实际上souce 算子只知道这条数据发出去了,不知道这条数据执行到哪里的

-----Original Message-----
From: user-zh-return-5981-wxchunjhyy=[hidden email] <user-zh-return-5981-wxchunjhyy=[hidden email]> On Behalf Of shuwen zhou
Sent: 2020年7月29日 15:10
To: [hidden email]
Subject: Re: Flink使用Kafka作为source时checkpoint成功提交offset的机制

比如读到一条offset值为100的消息,有Kafka Consumer source,一个Process算子和一个Sink算子
那么在这条消息到达Process算子,还未到达Sink算子时,提交offset是100吗?

On Wed, 29 Jul 2020 at 14:51, venn <[hidden email]> wrote:

> checkpoint成功时就会把它的offset提交,可以看下这个类:  FlinkKafkaConsumerBase  的 这个方法:
> notifyCheckpointComplete
>
> -----Original Message-----
> From: user-zh-return-5976-wxchunjhyy=[hidden email]
> <user-zh-return-5976-wxchunjhyy=[hidden email]> On Behalf Of
> shuwen zhou
> Sent: 2020年7月29日 14:24
> To: [hidden email]
> Subject: Flink使用Kafka作为source时checkpoint成功提交offset的机制
>
> 大家好,请教一个问题,
>
> 当Flink在使用Kafka作为source,并且checkpoint开启时,提交的offset是在消息被链路最后一个算子处理之后才会把这条
> offset提交吗?
> 还是说这个消息只要从Kafka source读取后,不论链路处理到哪个算子, checkpoint成功时就会把它的offset提交呢?
>
> 另外有大神指路这段代码具体在哪个文件吗?
> 谢谢!
>
> --
> Best Wishes,
> Shuwen Zhou
>


--
Best Wishes,
Shuwen Zhou <http://www.linkedin.com/pub/shuwen-zhou/57/55b/599/>
Reply | Threaded
Open this post in threaded view
|

回复: Flink使用Kafka作为source时checkpoint成功提交offset的机制

hk__lrzy
In reply to this post by shuwen zhou
你是说emit之后的offset commit么?可以看下
`Kafka09Fetcher`的runFetchLoop方法


在2020年07月29日 15:09,shuwen zhou<[hidden email]> 写道:
比如读到一条offset值为100的消息,有Kafka Consumer source,一个Process算子和一个Sink算子
那么在这条消息到达Process算子,还未到达Sink算子时,提交offset是100吗?

On Wed, 29 Jul 2020 at 14:51, venn <[hidden email]> wrote:

checkpoint成功时就会把它的offset提交,可以看下这个类:  FlinkKafkaConsumerBase  的 这个方法:
notifyCheckpointComplete

-----Original Message-----
From: user-zh-return-5976-wxchunjhyy=[hidden email]
<user-zh-return-5976-wxchunjhyy=[hidden email]> On Behalf Of
shuwen zhou
Sent: 2020年7月29日 14:24
To: [hidden email]
Subject: Flink使用Kafka作为source时checkpoint成功提交offset的机制

大家好,请教一个问题,

当Flink在使用Kafka作为source,并且checkpoint开启时,提交的offset是在消息被链路最后一个算子处理之后才会把这条offset提交吗?
还是说这个消息只要从Kafka source读取后,不论链路处理到哪个算子, checkpoint成功时就会把它的offset提交呢?

另外有大神指路这段代码具体在哪个文件吗?
谢谢!

--
Best Wishes,
Shuwen Zhou



--
Best Wishes,
Shuwen Zhou <http://www.linkedin.com/pub/shuwen-zhou/57/55b/599/>
Reply | Threaded
Open this post in threaded view
|

Re: Flink使用Kafka作为source时checkpoint成功提交offset的机制

shizk233
似乎楼主一开始说的checkpoint成功是指source
算子的checkpoint成功?但notifyCheckpointComplete函数要求的是整个链路的chk成功。
这个时候offset为100的消息必然已经被sink算子处理完成了,因为触发chk的屏障消息必然在offset100的消息之后到达sink算子。

hk__lrzy <[hidden email]> 于2020年7月29日周三 下午5:53写道:

> 你是说emit之后的offset commit么?可以看下
> `Kafka09Fetcher`的runFetchLoop方法
>
>
> 在2020年07月29日 15:09,shuwen zhou<[hidden email]> 写道:
> 比如读到一条offset值为100的消息,有Kafka Consumer source,一个Process算子和一个Sink算子
> 那么在这条消息到达Process算子,还未到达Sink算子时,提交offset是100吗?
>
> On Wed, 29 Jul 2020 at 14:51, venn <[hidden email]> wrote:
>
> checkpoint成功时就会把它的offset提交,可以看下这个类:  FlinkKafkaConsumerBase  的 这个方法:
> notifyCheckpointComplete
>
> -----Original Message-----
> From: user-zh-return-5976-wxchunjhyy=[hidden email]
> <user-zh-return-5976-wxchunjhyy=[hidden email]> On Behalf Of
> shuwen zhou
> Sent: 2020年7月29日 14:24
> To: [hidden email]
> Subject: Flink使用Kafka作为source时checkpoint成功提交offset的机制
>
> 大家好,请教一个问题,
>
>
> 当Flink在使用Kafka作为source,并且checkpoint开启时,提交的offset是在消息被链路最后一个算子处理之后才会把这条offset提交吗?
> 还是说这个消息只要从Kafka source读取后,不论链路处理到哪个算子, checkpoint成功时就会把它的offset提交呢?
>
> 另外有大神指路这段代码具体在哪个文件吗?
> 谢谢!
>
> --
> Best Wishes,
> Shuwen Zhou
>
>
>
> --
> Best Wishes,
> Shuwen Zhou <http://www.linkedin.com/pub/shuwen-zhou/57/55b/599/>
>