分布式锁并发实践
并发问题及分布式锁解决方案
LiMoyA
故不积跬步 无以至千里 不积小流 无以成江海
展开
-
分布式系统中获取唯一ID原来这么简单?
目录一、分布式系统中常见的需要获取唯一ID的场景二、获取唯一ID的方式三、SnowFlake 雪花算法四、代码实现一、分布式系统中常见的需要获取唯一ID的场景微服务中多个服务完成业务逻辑,需要保持某个业务字段唯一订单模块,多个服务配合完成整套业务,包括用户,库存等等。订单ID需要唯一的业务单号。分表分表,保证主键唯一。二、获取唯一ID的方式 使用UUID获取全局唯一的标识码,32位标识码 缺点:完全无序,作为数据库唯一标识码,数据库B+Tree结构,节点可能在还没...原创 2020-06-22 19:43:15 · 1448 阅读 · 0 评论 -
再也不用担心面试官让我用Redis实现分布式锁啦(二、Redisson实现分布式锁)
目录一、Jedis实现分布式锁二、Redisson实现分布式锁(单机Redis) 一、引入依赖(3.5.7) 二、配置redis 三、配置RedisonConfig 四、提供锁接口及实现,方便统一调用 五、提供测试接口,测试分布式锁一、Jedis实现分布式锁二、Redisson实现分布式锁(单机Redis) 一、引入依赖(3.5.7) <!-- redisson 分布式锁 --> ...原创 2020-06-09 09:02:50 · 467 阅读 · 0 评论 -
再也不用担心面试官让我用Redis实现分布式锁啦(一、Jedis实现分布式锁)
目录一、分布式锁实现方式二、分布式锁得可靠性三、jedis实现Redis分布式锁获取分布式锁错误示例1释放锁错误实例1错误实例2一、分布式锁实现方式数据库乐观锁mybatis实现数据库乐观锁解决并发问题实践 基于Redis实现分布式锁 基于Zk的分布式锁二、分布式锁得可靠性互斥性,同一时间段只有一个客户端能持有锁 避免死锁,即使某一客...原创 2020-04-21 15:29:16 · 822 阅读 · 0 评论 -
mybatis实现数据库乐观锁解决并发问题实践
何为乐观锁?乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制。悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。但随之而来的就是数据库性能的大量开销,特别是对长事务而言,这样的开销往往无法承受。而乐观锁机制在一定程度上解决了这个问题。乐观锁,大多是基于数据版本( Version )记录机制实现。何谓数据版本?即为数据增加...原创 2019-06-19 16:55:43 · 3726 阅读 · 1 评论