项目采用微服务(SpringCloudAlibaba)架构。使用Nginx实现代理,Nacos作为注册中心以及配置中心。网关使用Gateway,以及使用Sleuth与zikpin完成微服务间链路追踪。Sentinel完成访问降级与服务熔断。前端使用Vue完成后台管理页面开发。
项目中关于缓存穿透、缓存雪崩、缓存击穿问题,采用存放空记录、设置随机过期时间解决了缓存穿透和缓存雪崩问题,前期采用原生Redis脚本分布式锁处理缓存击穿问题,后期优化为Redission分布式锁处理。
项目中在多服务器调用情况下,使用线程池配合CompletableFuture异步编排优化系统,在压力测试下提高20%响应速度。
关于接口幂等性问题,项目中使用防重令牌解决。解决了在下单时多次误操作的情况以及在服务间调用时网络延时、异常等因素引起的重复调用问题。
项目中关于秒杀系统设计,采用独立部署,控制了异常不扩展到其他服务。
在秒杀系统中为了防止系统崩溃,使用Redis信号量原理完成秒杀商品的预加载,使用随机码控制秒杀链接防止恶意机器操作。
秒杀系统面临高并发问题,使用sentinel完成服务限流以及服务熔断,在用户得到信号量时采用RabbitMQ实现二次流量削峰。