【发布时间】:2015-02-12 17:09:34
【问题描述】:
我是 Hazelcast 的新手。所以有一个关于并行处理期间的最佳故障处理实践的问题:
掌握 Hazelcast,第 6.6 节,p。 96:
工作队列没有高可用性:每个成员将创建一个或 更多具有普通工作队列的本地 ThreadPoolExecutors 真正的工作。当一个任务被提交时,它会被放到工作队列中 该 ThreadPoolExecutor 并且不会被 Hazelcast 备份。如果 该成员将发生某些事情,所有未处理的工作将 丢了。
任务:
假设我有 1 个主节点和 2 个从节点。我用
启动耗时的任务executor.submitToAllMembers (new TimeConsumingTask())
所以每个节点都在处理一些东西。当他们都在处理某些事情时,其中一个奴隶失败了
问题:
- 不可能在另一个节点上重新运行失败的成员工作,对吧?
-
除了在整个集群中重新运行整个作业集之外,还有其他(最好是更好的)方法吗?(如果
TimeConsumingTask是Runnable) -
除了在整个集群中重新运行整个作业集之外,还有其他(最好是更好的)方法吗?(如果
TimeConsumingTask是Callable并且我想获得一个Future作为集群计算结果)
【问题讨论】: