MySQL乐观锁 实现秒杀案例,增加version字段来判断(jfinal框架)
MySQL乐观锁和悲观锁的主要区别在于:悲观锁在查询的时候就认为别人会和我抢,我查询的时候就先锁起来。乐观锁在查询的时候认为别人不会和我抢,我在更新的时候判断一下就可以了。所以如果在高并发的情况下,博主认为乐观锁并不适合做这种业务,因为是先查询,导致数据库有很多的更新失败,处理异常再次执行的情况,相...
zookeeper分布式锁实现秒杀案例(jfinal框架)
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的架构通过冗余服务实现高可用性。...
MySQL Redis分布式锁实现秒杀案例(jfinal框架)
我们加锁就一行代码:jedis.set(String key, String value, String nxxx, String expx, int time),这个set()方法一共有五个形参: 第一个为key,我们使用key来当锁,因为key是唯一...
不同概率的抽奖
需求很简单,为了更加形象,这里我们列一个表格来显示我们抽奖的物品和对应的概率(没有边框,大家凑合着看看吧,不想改造Octopress的样式了)...
MySQL悲观锁 select for update实现秒杀案例(jfinal框架)
为了方便测试,博主使用最新的jfinal框架,里边的东西就修改了一下a_little_config.txt,配置数据库链接的,启动直接打开DemoConfig.java,main方法启动即可(记得修改端口),这样就不用再去写jdbc了。感兴趣的朋友可以去了解一下:主要源码(模拟120人同时抢购100...
jfinal 乐观锁
继承Model类,实现自己的BaseModel,重写save()和update()方法,然后所有的Model都继承自BaseModel...