群集环境中的同步

时间:2015-08-27 18:49:47

标签: java tomcat synchronization cluster-computing load-balancing

我们正在从单个tomcat转到两个具有负载平衡和会话复制的集群tomcat实例。在我们能够做到这一点之前,我们必须对一些现有代码进行一些调整:我们有一些以不同间隔运行的后台作业,我们只希望这些作业运行一次(不在两个tomcat节点上)。关于如何解决这个问题的任何建议?

1 个答案:

答案 0 :(得分:1)

可以使用JDBCJobStore使用Quartz framework和clustering选项完成。

  

"负载平衡自动发生,群集中的每个节点都尽可能快地触发作业。当触发器的触发时间发生时,获取它的第一个节点(通过锁定它)是将触发它的节点。只有一个节点会在每次触发时触发作业。"

您只需要创建三个包含作业/任务信息的表。所有Tomcat节点都将访问这些表。一旦作业被触发,第一个可用节点将执行任务,其他节点不会。如果一个节点未通过任务,则另一个节点可能会重试该任务。