gpt4 book ai didi

java - Apache Storm 上为 Bolt 添加重试机制

转载 作者:太空宇宙 更新时间:2023-11-04 14:18:18 24 4
gpt4 key购买 nike

我的 Storm 拓扑中有一个 Bolt(调度程序),它打开 http 请求连接。

我想添加重试机制以防失败(连接超时、失败状态等)。重试应该仅在调度程序 bolt 中发生,而不是在整个拓扑上启动。

通常我会做的是添加一个队列来负责重试和异常处理(例如3次后自动将消息分派(dispatch)到错误队列..)

在 bolt 内做这样的事情可以吗?有人有这方面的经验并可以建议我可以使用哪个库吗?

最佳答案

当然!这似乎是处理错误的合理方法。我不确定您需要使用哪个库,除了提供用于连接到您选择的排队系统的 API 的库之外。

在您的 Bolt 中,您可能有如下所示的代码:

@Override
public void execute(Tuple tuple, BasicOutputCollector collector) {
try {
// do something which might fail here...
} catch (Exception e) {
// do you want to log the error?
LOG.error("Bolt error {}", e);
// do you want the error to show up in storm UI?
collector.reportError(e);
// or just put information on the queue for processing later
}
}

只要您在 Bolt 内捕获异常,您的拓扑就不会重新启动。

另一个选择是利用 Storm's built-in ability for guaranteed message processing使元组失败并以这种方式重试。

关于java - Apache Storm 上为 Bolt 添加重试机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27469933/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com