嗯,你说的这个我知道。跟我的问题不太意义,不过我自己看源码解决了,给大家分享下。 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 <[email protected]> 于2020年8月20日周四 上午10:57写道: > hi > Flink是可以感知到partition的增加的 > 消费kafka的时候设置一下KEY_PARTITION_DISCOVERY_INTERVAL_MILLIS这个参数 大于0就可以了 > > > > -- > Sent from: http://apache-flink.147419.n8.nabble.com/ >
