嗯,你说的这个我知道。跟我的问题不太意义,不过我自己看源码解决了,给大家分享下。
1 无状态启动情况下:
(1)首先flink采用的是assign方式,非subscribe方式。
(2)指定offset消费:未指定offset的分区会默认使用group offset消费。
(3)指定timestamp消费:未查询到offset的分区会默认使用latest消费。
(4)指定latest消费/指定earliest消费/指定group offset消费:这几种没啥好说的,按照对应策略消费即可。
2 有状态启动情况下:
(1)对于存在状态的部分,按照状态中offset继续消费。
(2)对于不存在于状态的部分分区,比如新增的分区,默认按照earliest消费。
3 非启动情况,任务运行中新增分区情况:
新增分区按照earliest offset消费,见AbstractFetcher.addDiscoveredPartitions方法。
JasonLee <
[hidden email]> 于2020年8月20日周四 上午10:57写道:
> hi
> Flink是可以感知到partition的增加的
> 消费kafka的时候设置一下KEY_PARTITION_DISCOVERY_INTERVAL_MILLIS这个参数 大于0就可以了
>
>
>
> --
> Sent from:
http://apache-flink.147419.n8.nabble.com/>