【发布时间】:2011-05-22 12:51:17
【问题描述】:
我现在有一个在一台服务器上运行的 Web 应用程序。我想切换到应用程序服务器集群(码头),以处理增加的负载和故障转移。但是,该应用程序有几个守护线程,它们每 10 分钟运行一次,以处理传入的数据。这些数据必须只处理一次(它与外部服务器通信,并且不好如果执行两次,事情就会发生)。
进行扩展的最佳做法是什么?
我的一些选择是:
有一个应用程序是否应该运行守护程序任务的标志。然后只有其中一个将该标志设置为 true。这可行,但这意味着我不再有简单的故障转移 - 我需要监控那个特殊的应用程序服务器并在它出现故障时采取行动。
制定一些系统,让不同的应用程序服务器相互了解,并通过某种方式选择一个节点来运行它,例如,所有人都选择一个随机数,哪个节点最高就可以运行它。每10分钟做一次。这有自动故障转移(如果其他节点因为它关闭而无法与一个节点通信,它就会被忽略),但这也意味着每个应用程序服务器都需要了解彼此的应用程序服务器,我觉得我正在重新发明轮到这里。
这种情况通常如何处理?
【问题讨论】:
标签: synchronization jetty scalability daemon