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()方法,当批处理成功时调用该方法。来自协调器的相同元数据被发送到所有发射器,因此他们需要将工作划分开来