diff --git a/pom.xml b/pom.xml index 397726b..7fcec62 100644 --- a/pom.xml +++ b/pom.xml @@ -71,7 +71,7 @@ springfox-swagger-ui 2.7.0 - + org.redisson redisson @@ -82,7 +82,7 @@ commons-lang3 3.7 - + org.springframework.kafka spring-kafka @@ -130,8 +130,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.0.0 - + diff --git a/src/main/java/com/itstyle/seckill/common/aop/LimitAspect.java b/src/main/java/com/itstyle/seckill/common/aop/LimitAspect.java index 0450e13..cead3c0 100644 --- a/src/main/java/com/itstyle/seckill/common/aop/LimitAspect.java +++ b/src/main/java/com/itstyle/seckill/common/aop/LimitAspect.java @@ -17,7 +17,7 @@ import com.google.common.util.concurrent.RateLimiter; @Scope @Aspect public class LimitAspect { - ////每秒只发出5个令牌,此处是单进程服务的限流 + ////每秒只发出5个令牌,此处是单进程服务的限流,内部采用令牌捅算法实现 private static RateLimiter rateLimiter = RateLimiter.create(5.0); //Service层切点 限流 diff --git a/src/main/java/com/itstyle/seckill/web/SeckillController.java b/src/main/java/com/itstyle/seckill/web/SeckillController.java index edb4223..8736e12 100644 --- a/src/main/java/com/itstyle/seckill/web/SeckillController.java +++ b/src/main/java/com/itstyle/seckill/web/SeckillController.java @@ -179,7 +179,9 @@ public class SeckillController { Runnable task = new Runnable() { @Override public void run() { - Result result = seckillService.startSeckilDBOCC(killId, userId,4); + //这里使用的乐观锁、可以自定义抢购数量、如果配置的抢购人数比较少、比如120:100(人数:商品) 会出现少买的情况 + //用户同时进入会出现更新失败的情况 + Result result = seckillService.startSeckilDBOCC(killId, userId,1); LOGGER.info("用户:{}{}",userId,result.get("msg")); } };