【问题标题】:Synchronization in clustered environment [closed]集群环境中的同步[关闭]
【发布时间】:2015-08-27 18:49:46
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    这可以通过Quartz framework 和使用 JDBCJobStore 的集群选项来完成。

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

    您只需创建三个保存作业/任务信息的表。所有 Tomcat 节点都将访问这些表。一旦作业被触发,第一个能够执行的节点将执行任务,其他节点不会。如果一个节点任务失败,另一个节点可能会重试。

    【讨论】:

    • 谢谢。我会调查一下。这适用于 MSSQL 数据库吗?
    • 是的,适用于任何可由 JDBC 访问的数据库。
    猜你喜欢
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 2010-11-14
    • 1970-01-01
    相关资源
    最近更新 更多