技术栈:Spring Boot、MyBatis-Plus、MySQL、Redis、RabbitMQ、Sa-Token、Jwt 、Xxl-Job、minio、SpringDoc、javadoc、EasyExcel、Docker
项目描述:圆睿易购是一个前后端分离的小程序商城项目,采用主流的互联网技术架构、全新的 UI 设计、支持一键源码部署,支持商户前端上架、后台估价、前端额度易货、发货、售后等。
责任描述:作为后端核心研发人员,主要负责整体架构、下单、购买、购物车、退货、售后、物流等功能、提供小程序API接口、以及管理后台的独立开发工作。
核心技术:
● 采用 Sa-Token 支持注解 登录校验、角色校验、权限校验、二级认证校验、HttpBasic校验、忽略校验角色与权限校验支持多种条件 如 and OR 或 权限 OR 角色 等复杂表达式;
● 将交易通知、系统消息发送到 RabbitMQ,实现消息的异步解耦,提升系统效率和服务稳定性;
● 通过 Redis 实现计数统计和下单排行,商品转化分析等,并通过先写 MySQL,再删除 Redis 的方案来保证高并发场景下的缓存一致性。
● 通过 Nginx 代理,将客户端请求转发到目标服务器的后端 API 接口,从而解决跨域问题;
● 采用 HandlerExceptionResolver 的全局异常处理策略,提高了代码的健壮性和可维护性,优化了用户体验;
● 采用rabbitMQ的延时队列,处理下单60秒后通知,以及订单15分钟超时情况,可以实现延迟队列RabbitMQ可以针对Queue和Message设置 x-message-tt,来控制消息的生存时间
● 使用IJPAY简单快速完成支付模块的开发,快速对接微信支付
● 通过 AOP + TraceID 记录接口访问日志,实现任务的追踪、监控和诊断。
● 在提交订单的时候,先通过Redis锁进行库存判断,如果库存校验通过,则正常提交,否则返回失败,防止超卖
● 搭建 Redis 集群、数据库的读写分离,实现服务的高可用和高性能;
● 采用自旋锁策略优化缓存架构,针对热 key 的并发访问进行同步,防止其失效时导致的缓存击穿;