*任务级失败
•bolt任务失败。此时,acker中所有与此bolt任务关联的消息都会因为超时而失败,对应spout的fail方法将被调用。
•acker任务失败。在失败之前持有的所有消息都将会因为超时而失败。Spout的fail方法将被调用。
•Spout任务失败。Spout任务对接的外部设备(如MQ)负责消息的完整性。
•
*任务槽(slot)故障
•worker失败。每个worker中包含数个bolt(或spout)任务。supervisor负责监控这些任务,当worker失败后,supervisor会尝试在本机重启它。
•supervisor失败。supervisor是无状态的,因此supervisor的失败不会影响当前正在运行的任务,只要及时的将它重新启动即可。supervisor不是自举的,需要外部监控来及时重启。
•nimbus失败。nimbus是无状态的,因此nimbus的失败不会影响当前正在运行的任务(nimbus失败时,无法提交新的任务),只要及时的将它重新启动即可。nimbus不是自举的,需要外部监控来及时重启。
*集群节点(机器)故障
•storm集群中的节点故障。此时nimbus会将此机器上所有正在运行的任务转移到其他可用的机器上运行。
•zookeeper集群中的节点故障。zookeeper保证少于半数的机器宕机仍可正常运行,及时修复故障机器即可。
本文深入探讨了Storm分布式流计算框架中任务级失败、任务槽(slot)故障、集群节点(机器)故障等常见问题及其解决策略。包括bolt任务、acker任务、Spout任务的失败处理,worker、supervisor、nimbus的角色故障及其应对措施,以及集群节点故障导致的任务转移。此外,文章还介绍了zookeeper集群中的节点故障如何通过及时修复来确保系统的稳定运行。

191

被折叠的 条评论
为什么被折叠?



