共享锁在同一个进程中很容易实现,但是在跨进程或者在不同 Server 之间就不好实现了。可以结合redis来实现集群环境中共享锁的功能。思路如下:集群环境中实例调用redis中指定key的incr命令获取一个值,然后把这个命令存储在redis中一个集合中,实例从redis中集合中取值(取出最小值),如果值和实例本身存储的值大小一致,则执行此方法,执行完成后调用redis命令删除集体中的那个最小值,如果取值不一致,则一直等待阻塞,一直等到拿到此值为止。
集群环境中实现lock
最新推荐文章于 2021-03-08 12:11:46 发布