Storm 的容错机制包括架构容错和数据容错。
1)架构容错:
Nimbus 和 Supervisor 进程被设计成快速失败(fail fast)的(当遇到异常的情况,进程就会挂掉)并且是无状态的(状态都保存在 Zookeeper 或者在磁盘上)。最重要的是,worker 进程不会因为 Nimbus 或者 Supervisor 挂掉而受影响。这跟Hadoop 是不一样的,当 JobTracker 挂掉,所有的任务都会没了。
当 Nimbus 挂掉会怎样?
如果Nimbus是以推荐的方式处于进程监管(例如通过supervisord)之下,那它会被重启,不会有任何影响。
否则当 Nimbus 挂掉后:
·已经存在的拓扑可以继续正常运行,但是不能提交新拓扑
·正在运行的 worker 进程仍然可以继续工