分布式锁 - JiyangM/spring GitHub Wiki

为了保证在同一个时间只有一个线程操作数据。

比如再购债权和投标购买的接口(秒杀),为了保证数据一致性 使用了分布式锁。

可以使用 redis、zookeeper

 JedisLock jedisLock = new JedisLock(jedis, "buyTransferDebt");
        try {
            if(!jedisLock.acquire()){
                return new ResultBean<>(400,"系统繁忙,请稍后重试",null);
            }
          //其他操作
           
        } catch (Exception e) {
            log.error("购买失败",e);
            return new ResultBean<>(400,"购买失败",null);
        } finally {
            jedisLock.release();
            jedisPool.returnResource(jedis);
        }