当前位置: 首页 > 知识库问答 >
问题:

如何处理Apache flink KeyedBroadCastProcessFunction中的异常

沈树
2023-03-14

Apache Flink-“keyby”中的异常处理

根据第一个链接,用户说他在processfn中使用sideoutput来捕获错误,我也在我的程序中使用sideoutput来发送与模式不匹配的数据,但是我不知道如何处理错误和无效数据到相同的sideoutput

根据第二个链接,用户正在尝试添加一个sink到keyby函数和null key和printsink函数,这是我完全不理解的

1)任何关于异常处理的文档或小代码段我在flink文档站点中没有找到任何东西2)关于flink异常处理的最佳实践

我没有在网上找到任何有效的资源,如果有人能回答,这将是有用的进一步参考其他人也

共有1个答案

陶胤运
2023-03-14
final OutputTag<T> unmatched = new OutputTag<String>("unmatched-data"){};
final OutputTag<String> errors = new OutputTag<String>("side-output-for-errors"){};

SingleOutputStreamOperator<T> matchedData = ...;

DataStream<T> unmatched = matchedData.getSideOutput(unmatched);
DataStream<String> errors = matchedData.getSideOutput(errors);
final OutputTag<String> errors = new OutputTag<String>("side-output"){};

SingleOutputStreamOperator<T> task1 = ...;
SingleOutputStreamOperator<T> task2 = ...;
SingleOutputStreamOperator<T> task3 = ...;

DataStream<String> exceptions1 = task1.getSideOutput(errors);
DataStream<String> exceptions2 = task2.getSideOutput(errors);
DataStream<String> exceptions3 = task3.getSideOutput(errors);

DataStream<String> exceptions = exceptions1.union(exceptions2, exceptions3);

exceptions.addSink(new FlinkKafkaProducer(...));
 类似资料:
  • 我们正在将Oracle Weblogic server 8.1升级到Weblogic server 12c,并将java 1.4升级到1.8 我的任务是确保应用程序功能保持不变。一些应用程序自2007年以来就没有碰过。 前面的代码是: 搜索“weblogic.jar”(在“\Oracle\Middleware\Oracle\u Home\wlserver\server\lib”中找到),我看到它没

  • 我目前正在尝试为spring boot实现一个自定义的错误处理程序,我已经用以下方法实现了它: 不知为什么这不起作用,并且异常仍然被抛给客户端,是否有某种方法捕获方法抛出的异常并忽略它。

  • 问题内容: 我们正在进行有关如何处理REST异常的持续讨论。 响应内容类型:JSON 我们有两种解决方案: 将所有未检查的异常作为JSON响应抛出。 发送请求无效响应代码。 参数: 当出现错误时,为什么要返回JSON?只需发送无效的响应码即可。 相反的观点: 对于普通开发人员而言,响应代码的技术性太强。 你怎么说? 问题答案: 对于JSON API,我最近开发了两者。我总是使用有效的JSON进行响

  • 问题内容: 这个问题已经在这里有了答案 : 我的PDO声明无效 (1个答案) 4年前关闭。 我正在尝试在php上使用类,但是在查找正确的错误处理方式时遇到了一些麻烦,我编写了以下代码: 这部分代码不报告错误,但根本不起作用,底部的var 返回空值。 有人可以帮我找到我错了吗? 问题答案: 除非您告知,否则PDO不会引发异常。你跑了吗: 在PDO对象上?

  • 我试图抓住无效的json,而解析它与jiffy在牛仔web套接字处理程序。如果json是有效的/无效的,我想转发一个适当的消息到,它将回复客户端。这是我的代码。 这会导致运行时异常。 12:07:48.406[错误]牧场侦听器http已连接到进程 那我该怎么做呢?

  • 问题内容: 我在Python中有一些列表理解,其中每次迭代都可能引发异常。 例如 ,如果我有: 我将在第三个元素中得到一个例外。 如何处理此异常并继续执行列表理解? 我能想到的唯一方法是使用辅助函数: 但这对我来说有点麻烦。 有没有更好的方法在Python中执行此操作? 注意: 这是我做的一个简单示例(请参阅上面的“ 例如 ”),因为我的实际示例需要一些上下文。我对避免除以零错误不感兴趣,但对处理