如何正确使用Flink Connector?(11)
-
topic 和 partition 动态发现
实际的生产环境中可能有这样一些需求 , 比如场景一 , 有一个 Flink 作业需要将五份数据聚合到一起 , 五份数据对应五个 kafka topic , 随着业务增长 , 新增一类数据 , 同时新增了一个 kafka topic , 如何在不重启作业的情况下作业自动感知新的 topic 。 场景二 , 作业从一个固定的 kafka topic 读数据 , 开始该 topic 有 10 个 partition , 但随着业务的增长数据量变大 , 需要对 kafka partition 个数进行扩容 , 由 10 个扩容到 20 。 该情况下如何在不重启作业情况下动态感知新扩容的 partition?
针对上面的两种场景 , 首先需要在构建 FlinkKafkaConsumer 时的 properties 中设置 flink.partition-discovery.interval-millis 参数为非负值 , 表示开启动态发现的开关 , 以及设置的时间间隔 。 此时 FlinkKafkaConsumer 内部会启动一个单独的线程定期去 kafka 获取最新的 meta 信息 。 针对场景一 , 还需在构建 FlinkKafkaConsumer 时 , topic 的描述可以传一个正则表达式描述的 pattern 。 每次获取最新 kafka meta 时获取正则匹配的最新 topic 列表 。 针对场景二 , 设置前面的动态发现参数 , 在定期获取 kafka 最新 meta 信息时会匹配新的 partition 。 为了保证数据的正确性 , 新发现的 partition 从最早的位置开始读取 。
推荐阅读
- 小鱼人|如何在新赛季稳定上分?善于抓失误的小鱼人,值得认真练上一波
- 阴阳师|阴阳师SR川猿强度如何 是否值得抽卡 改变斗技环境 大佬的新玩具
- 手机游戏|梦幻西游手游:活力如何换金币 一切都已给出 就看你的选择
- 华佗|三国杀:两位\奶爸\,朱治与华佗比,强度如何呢?
- 亲朋上分|《亲朋上分》266391亲朋下分亲朋上下分永劫无间崔三娘技能介绍 崔三娘如何获得更多技能
- 金铲铲之战|金铲铲之战新赛季最强阵容:学院名流永恩,低分段玩家谨慎使用
- 激战2|MMORPG集体放大招?魔兽、FF14、激战2均使用End迎来主线剧情终章!
- s6|金铲铲之战:S6双城传说如何才能快速上手?基础知识很关键
- |冰雪传奇:平民玩家四转后如何打金
- 穿越火线|CF:传说武器再度上新,那王者、炫金该如何发展?