有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java通过故障转移使长时间运行的任务只在集群的一台机器上运行?

我有一个低CPU队列处理任务,我需要保持运行一段可能很长的时间。如果任务失败,我希望任务在高可用性集群环境中运行,如果第一台机器出现故障,任务应该“切换”到另一台机器。确保任务一次只在群集中的一台机器上运行,并在机器出现故障时进行无缝故障切换的最佳方法是什么

现在,我计划使用JGroups来实现这个特性。我将为每个任务保留一个通道,只有通道负责人将执行任务,而其他成员将“跟随”然后,如果通道引线发生变化,则新的通道引线将从上一个引线停止的位置开始

有没有人用jgroup来解决这个问题?你的经历是什么


共 (1) 个答案

  1. # 1 楼答案

    您可能会从JBoss4.2.3+Clustered Singleton中获得一些灵感和指导。定义在一个节点上运行的服务,并且在节点群集中仅在一个节点上运行。如果该节点出现故障或从集群中弹出,则会为新节点分配单例。[JBoss集群的]底层实现是JGroups