开发者社区> 问答> 正文

kafka分区数扩容对flink任务有什么影响吗?

如题,flink任务当前从我了解来看,是直接先查询所有分区信息,然后assign方式指定分区消费的。 包括,之前多个任务使用相同group.id消费相同topic并不会相互影响,也是这个原因,因为是通过assign方式消费,而不是分组订阅方式。

当然相关的还有一个分区发现机制(我是开启的)。

在这种情况下,我想知道topic的分区扩容之后,flink能立即感知到分区多了吗?如果不能,我猜测会导致丢失数据,因为等发现新分区的时候,会默认使用kafka配置的latest方式消费。 不清楚我的猜测对不对,看看有没有人清楚,解答下,这俩天计划做分区扩容了,不清楚是否需要提前停flink任务。

*来自志愿者整理的flink邮件归档

展开
收起
游客sadna6pkvqnz6 2021-12-07 17:20:00 1754 0
1 条回答
写回答
取消 提交回答
  • 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

    2021-12-07 20:38:20
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Java Spring Boot开发实战系列课程【第16讲】:Spring Boot 2.0 实战Apache Kafka百万级高并发消息中间件与原理解析 立即下载
MaxCompute技术公开课第四季 之 如何将Kafka数据同步至MaxCompute 立即下载
消息队列kafka介绍 立即下载