设计公司门户网站(tigerpan.com)
项目负责人
此项目有个人历时2个月完成,包含服务端、后台管理系统及门户展示系统3个部分组成,独立从 0~1 完成系统设计、业务逻辑编写 以及部署运维的整体过程。服务端使用 SpringBoot + MySQL + MyBatis + Spring Security + JWT 搭建基础框架,前端使用 Vue + ElementUI + VueRouter + VueX 等技术框架。
通过 SpringSecurity + JWT 及建立用户表、角色表、权限表和菜单表等,对不同管理员及普通用户做动态权限校验,以确保数 据安全。
使用 Docker 远程 API 及 Docker Maven 插件实现一键部署,解决阿里云远程部署耗时严重的问题,在安全的前提下将远程部署 时间缩短至 2 分钟。
通过 Spring AOP 统一增强接口,记录接口访问信息,并自定义 ApiException 统一处理全局异常,实现异常 100% 捕获,统一 记录,提升 70% 的异常定位及修复效率。
店铺点评
项目负责人
该项目旨在学习如何解决缓存击穿、缓存穿透、缓存雪崩以及分布式锁的问题,服务端使用 SpringBoot + MySQL + MyBatis + Redis + Redission,前端使用Vue + ElementUI + Axios
使用 jmeter 测试高频访问某一店铺时,DB 压力大幅提升。因此需要缓存高频访问的店铺信息,使用Redis 将高频信息缓存,降 低 DB 压力的同时提升 90% 数据查询性能。
为方便其他业务后续使用缓存,降低代码冗余及耦合度。需要提取通用缓存业务逻辑并封装为静态方法。使用泛型 + 函数式编程 提取通用缓存静态方法,并解决缓存击穿、缓存穿透等问题。
由于悲观锁性能较差,不太适用高并发场景。因此需要在确保线程安全的前提下优化高并发场景优惠券模块的性能。使用 Redis + Lua 脚本实现分布式锁进而实现库存预检,以解决优惠券超卖问题、实现一人一单。且相比传统的数据库实现,秒杀性能提高了 80%。