moh*_*pal 5 sink apache-flink flink-streaming
尝试根据条件查看流进入两个接收器的可能性。
要求是流有事件,转换后的所有事件都需要转到一个接收器(假设一个kafka主题)
并且只有错误事件需要转到另一个接收器(假设另一个kafka主题)。
没有看到一旦转换完成,附加逻辑放入接收器的用例。看看是否做过类似的事情
做到这一点的最佳方法是使用侧面输出。
private static final OutputTag<String> errors = new OutputTag<>("errors") {};
...
// in your main() method
SingleOutputStreamOperator<T> result = events.process(new ProcessFunction());
result.addSink(sink).name("normal output");
result.getSideOutput(errors).addSink(errorSink).name("error output");
...
// in the process function
if (somethingGoesWrong) {
ctx.output(errors, "error message");
}
Run Code Online (Sandbox Code Playgroud)
虽然还有其他方法可以使用 Flink 拆分流,但侧输出非常灵活(例如,侧输出可以具有不同的类型)并且性能良好。
| 归档时间: |
|
| 查看次数: |
1995 次 |
| 最近记录: |