![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式
文章平均质量分 84
叫我峰兄
星光不问赶路人,干就完了!
展开
-
redis应用系列一:分布式锁正确实现姿势
实现分布式锁常见有三种实现方式:基于数据库基于缓存(redis)分布式锁,基于 Zookeeper 实现分布式锁以下是他们在可靠性、性能、复杂性三个维度的对比评判维度 比较评判维度比较可靠性Zookeeper > 缓存 > 数据库性能缓存 > Zookeeper >= 数据库复杂性Zookeeper >= 缓存 > 数据库由于 redis 高性能,在许多密集型的业务场景中是运用最多,因此以下介绍基于 redis原创 2021-07-30 16:28:22 · 305 阅读 · 0 评论 -
IO多路复用
什么是IO多路复用?同一个线程监听多个IO的socket阻塞IO1)绑定端口监听socket3)等待连接(会阻塞)4)读取客户端数据(会阻塞)5)关闭连接6)重复3、4、5如果连接的客户端一直不发数据,服务端线程将会一直阻塞在read函数上不返回,也无法接受其他客户端连接。非阻塞IO改造read每次创建一个新的进程或线程,去调用read函数,并做业务处理。当一个客户端建立好连接后,就可以立刻等待新的客户端连接,而不用阻塞在原客户端的read请求上。这不是真正的非..原创 2021-04-14 13:16:10 · 153 阅读 · 0 评论 -
秒杀场景下如何保证数据一致性
什么是秒杀?从字面意思理解,所谓秒杀,就是在极短时间内,大量的请求涌入,处理不当时容易出现服务崩溃或数据不一致等问题的高并发场景。常见的秒杀场景有淘宝双十一、网约车司机抢单、12306抢票等等。高并发场景下秒杀超卖Bug复现在这里准备了一个商品秒杀的小案例,1.按照正常的逻辑编写代码,请求进来先查库存,库存大于0时扣减库存,然后执行其他订单逻辑业务代码;/** * 商品秒杀 */@Servicepublic class GoodsOrderServiceImpl implements O转载 2021-03-30 10:14:36 · 1539 阅读 · 0 评论 -
分布式锁的三种实现方式
分布式锁三种实现方式:基于数据库实现分布式锁;基于缓存(Redis等)实现分布式锁;基于Zookeeper实现分布式锁;一, 基于数据库实现分布式锁1、悲观锁利用select … where … for update 排他锁注意: 其他附加功能与实现一基本一致,这里需要注意的是“where name=lock ”,name字段必须要走索引,否则会锁表。有些情况下,比如表不大,mysql优化器会不走这个索引,导致锁表问题。2、乐观锁所谓乐观锁与前边最大区别在于基于CAS思想,是不具有转载 2021-02-20 11:54:27 · 255 阅读 · 0 评论