 闽公网安备 35020302035485号
                
                闽公网安备 35020302035485号
                .对资源的访问是互斥的。
	
10.B建立资源成功,B获得了锁
	
	
算法设计的实现机制:
采用了对 Redis 集群中每个独立节点尝试获取锁的方法,客户端向集群中的每一个 Redis 节点请求加锁,并为锁设置一个较短的过期时间。如果客户端能在集群中超过半数以上的节点(即 N/2+1 个节点)上锁成功,那么系统就认为分布式锁获取成功。例如,在一个包含5个节点的 Redis 集群中,客户端需要在至少3个节点上成功加锁才能宣布获取分布式锁成功。public class RedLockDemo {
    public static void main(String[] args) {
        // 堆代码 duidaima.com
        // 创建 Redisson 客户端配置
        Config config = new Config();
        config.useClusterServers()
        .addNodeAddress("redis://192.168.207.128:6379",
                        "redis://192.168.207.129:6379",
                        "redis://192.168.207.130:6379");
        // 创建 Redisson 客户端实例
        RedissonClient redissonClient = Redisson.create(config);
        // 创建 RedLock 对象
        RedissonRedLock redLock = redissonClient.getRedLock("yian");
        try {
            // 尝试获取分布式锁,最多尝试 5 秒获取锁,并且锁的有效期为 5000 毫秒
            boolean lockAcquired = redLock.tryLock(5, 5000, TimeUnit.MILLISECONDS); 
            if (lockAcquired) {
                // 加锁成功,执行业务代码...
            } else {
                System.out.println("Failed to acquire the lock!");
            }
        } catch (InterruptedException e) {
            Thread.currentThread().interrupt();
            System.err.println("Interrupted while acquiring the lock");
        } finally {
            // 无论是否成功获取到锁,在业务逻辑结束后都要释放锁
            if (redLock.isLocked()) {
                redLock.unlock();
            }
            // 关闭 Redisson 客户端连接
            redissonClient.shutdown();
        }
    }
}