Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何确定事务是否在Apache Storm Trident中成功提交_Java_Apache Storm_Trident - Fatal编程技术网

Java 如何确定事务是否在Apache Storm Trident中成功提交

Java 如何确定事务是否在Apache Storm Trident中成功提交,java,apache-storm,trident,Java,Apache Storm,Trident,我正在尝试开始与风暴三叉戟和拓扑设置和运行与和支持 然而,我很难找到让我的喷口/函数知道事务是否成功提交的方法。我没有看到任何确认或失败的方法,因为在常规的风暴喷口/螺栓接口 我的用例是,仅当处理并持久化(或失败)同一类别的前一个元组时,才发出该类别的元组。因为我将使用处理后的数据更新类别的下一个元组。不同类别的元组可以并行处理 使用partitionBy方法按类别对流进行分区 将“最大喷口挂起”设置为1可消除此问题,因为Trident一次只提交一批。但这是不可扩展的。如果设置为大于1的任何值,

我正在尝试开始与风暴三叉戟和拓扑设置和运行与和支持

然而,我很难找到让我的喷口/函数知道事务是否成功提交的方法。我没有看到任何确认或失败的方法,因为在常规的风暴喷口/螺栓接口

我的用例是,仅当处理并持久化(或失败)同一类别的前一个元组时,才发出该类别的元组。因为我将使用处理后的数据更新类别的下一个元组。不同类别的元组可以并行处理

使用
partitionBy
方法按类别对流进行分区

将“最大喷口挂起”设置为1可消除此问题,因为Trident一次只提交一批。但这是不可扩展的。如果设置为大于1的任何值,则相同类别的元组(如果它们在两个连续批中发出)将在提交前一个事务之前被处理

或者我应该为每个类别设置一个喷口,并将
max\u spoot\u pending
设置为1


谢谢

我建议您考虑实施一个。它在协调器中有一个success()方法,当批处理成功时调用该方法。来自协调器的相同元数据被发送到所有发射器,因此他们需要将工作划分开来