【问题标题】:Load balancing for spring boot scheduler serviceSpring Boot 调度程序服务的负载均衡
【发布时间】:2020-11-27 09:20:59
【问题描述】:

我使用 @Enablescheduler 和 @scheduler(cron=) 创建了一个 java spring boot 调度程序服务,并且需要在集群上运行它。 有人可以帮助我如何创建集群负载平衡应用程序。

【问题讨论】:

  • 这不是负载均衡,而是在不同的实例上运行相同的任务。看看什么可以提供 Shedlock 或 Quartz。然后根据您的目的实施它。

标签: java spring-boot load-balancing


【解决方案1】:

您实际上需要确保一旦计划任务在一个节点上启动, 集群中的其他节点被阻止执行相同的任务。

您可以为此目的使用 Shedlock。您需要创建名为 shedlock 的数据库表, 它应该包含属性:name、lock_at、lock_until、locked_by(node)。

然后像这样创建一个计划任务:

@Scheduled(chron="..")
@SchedulerLock(name="..", lockAtLeast="..")
public void scheduledTask() {
    LockAssert.assertLocked();
    //do something
}

如需更多文档,请尝试Shedlock

【讨论】:

    猜你喜欢
    • 2021-01-10
    • 2016-01-03
    • 2017-01-10
    • 2019-08-20
    • 2019-01-22
    • 2013-08-26
    • 2022-10-23
    • 2017-03-24
    • 1970-01-01
    相关资源
    最近更新 更多