缓存-分布式锁-Redisson-信号量测试

信号量: 类似于车库停车一样,车库满了就不能停车,车被开走,就可以继续停车!可以来解决分布式限流的问题

@GetMapping(value = "/park")
@ResponseBody
public String park() throws InterruptedException {

    RSemaphore park = redisson.getSemaphore("park");
    park.acquire();     //获取一个信号、获取一个值,占一个车位
    boolean flag = park.tryAcquire();

    if (flag) {
        //执行业务
    } else {
        return "error";
    }

    return "ok=>" + flag;
}

@GetMapping(value = "/go")
@ResponseBody
public String go() {
    RSemaphore park = redisson.getSemaphore("park");
    park.release();     //释放一个车位
    return "ok";
}

 

你可能感兴趣的:(缓存-分布式锁-Redisson-信号量测试)