apache-flink - 一个对象 flink 运算符(例如过滤器)或 Apache Flink Job 中的两个对象
问题描述
我有来自不同 Apache Kafka 主题的 4 个输入 DataStreams(JSON 消息)的 Apache Flink 作业,而且我只有一个对象 XFilterFunction - 它进行一些过滤。我写了一些数据管道逻辑(例如原始示例):
FilterFunction<MyEvent> xFilter = new XFilterFunction();
inputDataStream1.filter(xFilter)
.name("Xfilter")
.uid("Xfilter");
inputDataStream2
.union(inputDataStream3)
//here some logics (map, process,...)
.filter(xFilter);
在 Job 中使用一个新对象 XFilterFunction 是好是坏?
还是更好地使用两个新对象 XFilterFunction?(2 个流 -> 2 个新的过滤器对象)
解决方案
如果您多次实例化该类,即
inputDataStream1.filter(new XFilterFunction());
...
inputDataStream2.filter(new XFilterFunction());
应该没有问题。我不太确定状态或覆盖的上下文函数之类的东西是否会显示出不需要的行为。如果它不是专门化的RichFunction
,也许甚至只是通过委托发生的纯函数调用,不幸的是我对 Flink 的内部没有那么深入,但是有了上面的解决方案,你应该是安全的。
推荐阅读
- winapi - “设备实例路径”名称是否有名称限制?
- python - Pandas 使用 str replace 将不在国籍列表中的国家替换为“其他”
- sumologic - Sumologic:如何获得两条消息之间的平均时间差
- jvm - JVM C1 和 C2 编译时间基准
- java - 二维数组,其中每个元素都是一个列表
- vim - 如何在 Vim 配色方案中使用螺栓/斜体字体?
- r - If 和 If else 语句问题
- javascript - 当我更改我的 React 文件时,我的页面不会更改
- ios - 无法将本机应用程序安装到 IOS 模拟器
- angular - Angular karma 单元测试覆盖分支