实现分布式锁SchedulerLock

Spring 提供了一种简单的方法来实现用于调度作业的 API。在我们部署应用程序的多个实例之前,它运行良好。

默认情况下,Spring 无法处理多个实例上的调度程序同步。它在每个节点上同时执行作业。

1.添加Maven依赖项


    net.javacrumbs.shedlock
    shedlock-spring
    2.2.0

2.配置数据库

目前,ShedLock支持Mongo,Redis,Hazelcast,ZooKeeper以及任何带有JDBC驱动程序的内容。

接下来,我们需要为 ShedLock 创建一个数据库表,以保存有关调度程序锁的信息:

CREATE TABLE shedlock (
  name VARCHAR(64),
  lock_until TIMESTAMP(3) NULL,
  locked_at TIMESTAMP(3) NULL,
  locked_by VARCHAR(255),
  PRIMARY KEY (name)
)

3.添加配置类

首先我们需要添加jdbc的包


    net.javacrumbs.shedlock
    shedlock-provider-jdbc-template

你可能感兴趣的:(微服务,分布式)