我们在分布式高并发架构中会出现一些抢夺统一资源的问题,这时候我们会想到使用锁机制来解决这样的问题,我们可能会想到使用线程锁来解决这样的问题,但是分布式架构是分布在不停的服务器中,是跨jvm进程,可想而已,单体架构中可以使用这种锁机制,但是我们可以使用第三方的介质来实现解决这样的问题
我们会想到可以使用mysql,但是如果高并发请求下,mysql的执行速度并不好,在大型分布式架构上往往性能瓶颈集中在数据库中,为了提高性能,所以不能采用mysql,redis可以使用,但是我们都知道redis存在缓存过期的问题,需要业务处理这样的过期机制,三个比较还是zookeeper能解决这些问题

共享锁:也被称作只读锁,当一方获取共享锁后,其它方也可以获取共享锁,但其只允许读取,在共享锁全部释放之前,其它方不能获得写锁
排他锁:也称读写锁,获得排它锁后,可以进行数据的读写,在其释放之前,其它方不能获得任何锁