引言 最近项目上线的频率颇高,连着几天加班熬夜,身体有点吃不消精神也有些萎靡,无奈业务方催的紧,工期就在眼前只能硬着头皮上了。脑子浑浑噩噩的时候,写的就不能叫代码,可以直接叫做Bug。我就熬夜写了一个bug被骂惨了。 由于是做商城业务,要频繁的对商品库存进行扣减,应用是集群部署,为避免并发造成库存超 ...
分类:
其他好文 时间:
2020-04-25 13:02:20
阅读次数:
69
引言 最近项目上线的频率颇高,连着几天加班熬夜,身体有点吃不消精神也有些萎靡,无奈业务方催的紧,工期就在眼前只能硬着头皮上了。脑子浑浑噩噩的时候,写的就不能叫代码,可以直接叫做Bug。我就熬夜写了一个bug被骂惨了。 由于是做商城业务,要频繁的对商品库存进行扣减,应用是集群部署,为避免并发造成库存超 ...
分类:
其他好文 时间:
2020-04-22 13:34:50
阅读次数:
60
引言最近项目上线的频率颇高,连着几天加班熬夜,身体有点吃不消精神也有些萎靡,无奈业务方催的紧,工期就在眼前只能硬着头皮上了。脑子浑浑噩噩的时候,写的就不能叫代码,可以直接叫做Bug。我就熬夜写了一个bug被骂惨了。由于是做商城业务,要频繁的对商品库存进行扣减,应用是集群部署,为避免并发造成库存超买超卖等问题,采用redis分布式锁加以控制。本以为给扣库存的代码加上锁lock.tryLock就万事大
分类:
其他好文 时间:
2020-04-22 11:40:50
阅读次数:
59
分布式和集群 目前的项目很少会采用单机架构了,一是因为单机性能有限,二是因为单机服务一旦故障整个系统就无法继续提供服务了。所以目前集群和分布式的架构使用得很广泛,主要就是为了解决上述两个问题,一个性能问题,一个故障问题,通过分布式架构解决性能(高并发)问题,通过集群架构解决故障服务(高可用)问题。 ...
分类:
数据库 时间:
2020-04-18 09:38:46
阅读次数:
230
redis事务 redis事务介绍: 1. redis事务可以一次执行多个命令,本质是一组命令的集合。 2.一个事务中的所有命令都会序列化,按顺序串行化的执行而不会被其他命令插入 作用:一个队列中,一次性、顺序性、排他性的执行一系列命令 multi指令的使用 1. 下面指令演示了一个完整的事物过程, ...
分类:
其他好文 时间:
2020-04-08 09:15:37
阅读次数:
91
一、什么是分布式锁?要介绍分布式锁,首先要提到与分布式锁相对应的是线程锁、进程锁。 线程锁:主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同一JVM中有效果,因为线程锁的实现在根本上是依靠线程之间共享内存实现的,比如synchronized ...
分类:
其他好文 时间:
2020-04-06 13:23:28
阅读次数:
54
redis 是一个基于内存的高性能 key-value数据库,支持丰富的数据类型(String,List , Set ,Sorted Set,Hash )redis中的单个value的存储限制是1G,比 Memcached的1MB要强大太多。 问题一: 如何保证 redis 的高并发和高可用?red ...
分类:
其他好文 时间:
2020-04-06 11:38:36
阅读次数:
69
参考 SpringBoot实现Redis分布式锁 https://www.jianshu.com/p/750ac97eb29e 实现原理 加锁解锁 执行逻辑之前,加锁 执行逻辑之后,删除锁 加锁和删除锁必须是同一个对象的行为。 获取锁删除锁 使用setnx,保证只有一个对象可以设置锁成功,只有一个对 ...
分类:
编程语言 时间:
2020-04-05 17:05:13
阅读次数:
72
一、前言 分布式锁一般有3中实现方式: 1、数据库乐观锁; 2、基于Redis的分布式锁; 3、基于zookeeper的分布式锁 二、可靠性 为了确保分布式锁的可用,我们至少要确保锁的实现满足以下4个条件 1、互斥性。在任意时刻,只有一个客户端持有锁; 2、不会发生死锁。即使有一个客户端在持有锁的期 ...
分类:
其他好文 时间:
2020-04-04 09:46:07
阅读次数:
430
支持原创,本文参照:https://www.cnblogs.com/linjiqin/p/8003838.html ,感谢老铁的辛苦付出! 前言 分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Re ...
分类:
其他好文 时间:
2020-03-31 17:30:06
阅读次数:
52