我正在研究apachestorm拓扑。我有不同的螺栓来执行诸如cosmosdb插入、restapi调用等功能。
我想为我的storm拓扑设置storm.config.setmessagetimeoutsecs的值。
现在我已经设置为5分钟,但我仍然可以看到由于信息超时导致的故障。拓扑的消息超时是否有最大值。
以及如何为storm.config.setmessagetimeoutsecs设置最佳值
我正在研究apachestorm拓扑。我有不同的螺栓来执行诸如cosmosdb插入、restapi调用等功能。
我想为我的storm拓扑设置storm.config.setmessagetimeoutsecs的值。
现在我已经设置为5分钟,但我仍然可以看到由于信息超时导致的故障。拓扑的消息超时是否有最大值。
以及如何为storm.config.setmessagetimeoutsecs设置最佳值
1条答案
按热度按时间j2datikz1#
我不相信有一个最大超时,不。你可能不想设置太高,虽然,因为这将意味着,如果一个元组实际上是在网络传输过程中丢失,它将需要更长的时间来找出它已经丢失,并重放它。
是否将topology.max.spout.pending设置为合理的值?这有助于避免一次飞行中有太多元组,这有助于降低整个延迟。
我还要看看5分钟以上是否是元组的合理处理时间。我不知道你的用例,所以也许这是合理的,但这似乎是一个很长的时间。
如果您确实需要处理一些元组,这些元组将花费很长的时间,那么您可以考虑将拓扑拆分为更小的拓扑,这样就可以为较慢的部分设置一个高超时,为其余部分设置一个较低的超时。