Storm基础(五)守护程序的容错机制

原文链接:http://storm.apache.org/releases/1.0.2/Daemon-Fault-Tolerance.html

本人原创翻译,转载请注明出处

Storm有几种守护进程:负责调度worker的Nimbus,负责启动和停止worker的supervisors,提供日志访问的log viewer,展示集群状态信息的UI。

worker死掉时会发生什么?

worker死掉时,supervisor将会重启它。如果它启动时继续死掉并且不能给Nimbus发送心跳,Nimbus会重新调度worker。

节点死掉时会发生什么?

分配给那个机器的任务将超时,Nimbus会重新分配任务给其他机器。

Nimbus或Supervisor进程死掉会发生什么?

Nimbus和Supervisor守护程序被设计为fail-fast(任何时候异常发生就进行自毁)和stateless(所有的状态保存在zookeeper或磁盘上)。正如在Setting up a Storm cluster里描述的那样,Nimbus和Supervisor守护程序必须使用daemontools或monit等工具监督管理。所以如果Nimbus和Supervisor守护程序死掉了,它们会像什么都没发生一样重启。

显而易见,worker进程不受Nimbus和Supervisor守护程序异常终止的影响。这和Hadoop正好相反,在Hadoop里,如果JobTracker终止,运行中的jobs也会终止。

Nimbus是否是单点失败?

如果Nimbus节点终止,workers会继续运行。此外,supervisors也会继续重启workers(如果worker终止的话)。但是,没有Nimbus,wokers就不会在必要的时候被分配到其他机器上,比如有机器宕机的时候。

从1.0.0版本以后,Storm Nimbus是高可用的,更多信息请参考Highly Available Nimbus Design

Storm如何保证消息处理?

即使节点宕掉或消息丢失,Storm也有保证消息处理的机制。请阅Storm基础(四)保证消息处理

你可能感兴趣的:(Storm基础(五)守护程序的容错机制)