[英]Is there a way to retry a Bolt in Storm?
我们有一个执行数据库保存的应用程序。 如果保存失败,是否有办法仅重试失败的螺栓? 我们不想一直失败,直到壶嘴。
您可以将输出“蝎尾”流添加到螺栓。 无论哪个螺栓将开始重试过程,都将读取该流。 这将在拓扑中创建一个循环。 这个想法是,当发生故障时,您可以向该流中写入信息包,并将元组传递到上游螺栓,从而开始重试。 数据包包含重试所需的任何状态。
Storm没有对此的内置支持。 但是,您可以编写自己的解决方案代码:
List
)中,并从execute()
返回 execute()
处理其他元组,直到您想重试(也许是某个计时器,即,您可能想要获取当前时间戳或基于计数器重试)。 您只需要考虑Storm的MESSAGE_TIMEOUT
。 重试的时间不能长于该值,因为如果未在超时值内确认元组,Storm会自动在源处使元组失败。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.