我正在研究Apache风暴拓扑。我有不同的螺栓执行cosmosdb插入,REST api调用等功能。
我想为我的Storm拓扑设置storm.config.setMessageTimeoutSecs的值。
现在我已将其设置为5分钟,但由于消息超时,我仍然可以在现场看到故障。拓扑的消息超时是否有最大值。
以及如何为storm.config.setMessageTimeoutSecs
设置最佳值答案 0 :(得分:0)
我不相信最大超时,不。你可能不想把它设置得太高,因为这意味着如果一个元组在网络传输过程中实际丢失了,那么要弄清楚它已经丢失并重播它需要更长的时间
您是否将topology.max.spout.pending设置为合理的值?这有助于避免一次飞行中过多的元组,这有助于保持完整的延迟。
我还要看看5分钟以上是否是您元组的合理处理时间。我不知道你的用例,所以也许这是合理的,但对我来说似乎很长一段时间。
如果您确实需要处理一些需要很长时间的元组,您可以考虑将拓扑拆分为较小的拓扑,这样就可以为慢速部分设置高超时,为其余部分设置较低的超时。