如题,flink任务当前从我了解来看,是直接先查询所有分区信息,然后assign方式指定分区消费的。 包括,之前多个任务使用相同group.id消费相同topic并不会相互影响,也是这个原因,因为是通过assign方式消费,而不是分组订阅方式。
当然相关的还有一个分区发现机制(我是开启的)。
在这种情况下,我想知道topic的分区扩容之后,flink能立即感知到分区多了吗?如果不能,我猜测会导致丢失数据,因为等发现新分区的时候,会默认使用kafka配置的latest方式消费。 不清楚我的猜测对不对,看看有没有人清楚,解答下,这俩天计划做分区扩容了,不清楚是否需要提前停flink任务。
*来自志愿者整理的flink邮件归档
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方法。*来自志愿者整理的flink
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。