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

如何在BaserichSpout-Apache Storm的fail()方法中找到失败的根源?

子车高歌
2023-03-14

我有一个如下的拓扑:

Spout --> Bolt 1 --> Bolt2 --> Bolt3

其中Spout有一个由Bolt2订阅的流“MyStream”,而其他流“Bolt1Stream”是Bolt1接收元组的地方。

提前致谢

共有1个答案

时向文
2023-03-14

对于每个流,我使用一个单独的类来标识流。另一种方法是使用相同的类,并在类中有一个整数或枚举来标识流。

@Override
public void fail(Object msgId) {
   if (msgId instanceof MyTupleClass) {
   // Default stream   
   MyTupleClass oneTuple = (MyTupleClass) msgId;
   //---tuple replay logic. Re-emitting the failed tuples    
   ReEmitTheDefaultStreamTuple(oneTuple);
}
else {
   //it's the other stream
   //For this stream you could perhaps use MySecondTupleClass
}
 类似资料:
  • 我曾尝试在Python中查找立方根,但不知道如何找到它。有一行代码有效,但他不给我完整的数字。例子: 这不是给我4强硬,而是3.99999。有人知道我该怎么解决这个问题吗?

  • 本文向大家介绍请说说快速失败(fail-fast)和安全失败(fail-safe)的区别?相关面试题,主要包含被问及请说说快速失败(fail-fast)和安全失败(fail-safe)的区别?时的应答技巧和注意事项,需要的朋友参考一下 考察点:集合 Iterator的安全失败是基于对底层集合做拷贝,因此,它不受源集合上修改的影响。java.util包下面的所有的集合类都是快速失败的,而java.u

  • 我有一个用两个螺栓处理文档的拓扑结构。我需要能够在文档被完全处理/通过整个拓扑结构后修改存储在喷口中的数据结构。在进一步了解ApacheStorm之前,我相信在spout中实现的“ack”方法只在拓扑的末尾被调用。我现在明白了,在每一个插销中都需要调用“ack”,我感到困惑。 本质上,如果我把自定义代码放在spout中的ack方法中:什么时候执行?每当'ack'方法被调用在一个螺栓或当整个元组树已

  • 问题内容: 我尝试在Android Studio中导入项目。导入时,我在Gradle中遇到了一个错误: 我努力了 : 重新下载依赖项并同步项目:失败(相同错误)。 停止Gradle构建过程:失败(相同错误)。 删除主目录中的.graddle:失败(相同错误)。 使缓存无效并重新启动失败(相同的错误)。 卸载并重新安装Android Studio和SDK:失败(相同错误)。 /build.gradl

  • 当我在更换笔记本电脑并更新到Android Studio版本0.8.2后尝试构建我的项目时,我得到了这个错误。 失败:生成失败,出现异常。 以下是我的分级文件: 顶层设置。梯度 Top level build.gradle为空

  • 我得到以下错误: 当我尝试在muzei应用程序中使用我的