为什么所有的螺栓都会发出咔哒声但是喷嘴失效?

时间:2015-11-04 09:13:49

标签: apache-storm

我正在使用JmsSpout和BaseBasicBolt。 所有螺栓都已拧紧,但很多(大约一半)喷口失效。 可能的原因是什么? 或者我如何记录消息失败的原因? JmsSpout只打印哪条消息失败,没有错误信息。

1 个答案:

答案 0 :(得分:1)

如果您没有主动fail()元组螺栓,则元组失败的唯一原因是超时。 Storm中的默认超时为30秒(您可以通过TOPOLOGY_MESSAGE_TIMEOUT_SECS配置它)。如果元组被释放,Storm会等待超时持续时间以获得确认。如果在这段时间内没有收到确认,则Strom会失败。

增加超时可以解决问题(您应该将超时设置为比预期处理延迟更大的值)。

如果您的预期处理延迟已经低于超时值,则表明您的拓扑中存在瓶颈。因此,一个(或多个)运算符不能足够快地处理传入的元组。因此,传入的元组会在输入队列中缓冲,随着队列的不断增长而增加延迟。您需要增加这些瓶颈运算符的并行度来解决问题。