Storm(四):容错机制

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/congcong68/article/details/73014400


         Apache Storm分布式集群主要节点由控制节点(Nimbus节点)和工作节点(Supervisor节点),在集群下,怎么保证拓扑的可靠性,storm提供哪些容错机制?

  


    我们部署了两台(Master、Salve2),然后启动了两个Supervisor和对应两个worker

      


一、Nimbus节点出现故障(进程挂掉)                           

 

    Nimbus节点出现故障,Supervisor节点还正常运行对应的worker也是正常工运行,只是Supervisor不能接受Nimbus新任务的分配。

       

    Master服务器中的Nimbus进程挂掉了,对Supervisor、worker进程不影响。

    

 

二、Supervisor节点出现故障(进程挂掉)                          


       出故障的Supervisor节点对应的worker也就挂掉了,但Nimbus节点监控把对应的worker的重新分配到其他的Supervisor节点上运行。


    我们把对应的Salve2中的supervisor进程挂掉

    


   Nimbus节点监控把对应的worker的重新分配到Master的Supervisor节点上运行。

     

     

  三、NimbusSupervisor节点都出现故障                          

   

       Nimbus节点出现故障并某其中一个Supervisor出现故障时,Supervisor对应的worker不存在了,因为没有Nimbus节点监控把对应的worker的重新分配到其他的Supervisor节点上运行。

     

  四、Worker 进程挂掉                                     


    因拓扑内存溢出或者其它导致Worker 挂掉,Supervisor会重新启动Worker。

     我们对Salve2的Worker进程挂掉,

    

    

     然后等了一会,Supervisor会重新启动Worker

     

 


  总结:

         NimbusSupervisor被设计成是快速失败且无状态的,他们的状态都保存在ZooKeeper,如果其中某一个或者两个进程都挂掉,都不会影响其它的Supervisor已经在运行worker进程,但NimbusSupervisor本身不会自动重启。


猜你喜欢

转载自blog.csdn.net/congcong68/article/details/73014400