# Campus_service **Repository Path**: He-zejun/sky_take_out ## Basic Information - **Project Name**: Campus_service - **Description**: 为师生提供方便快捷的点餐服务,项目采用前后端分离的架构来进行开发,并具备小程序端和PC端。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-02-29 - **Last Updated**: 2024-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #校园订餐系统 项目描述:为师生提供方便快捷的点餐服务,项目采用前后端分离的架构来进行开发,并具备小程序端和PC端 项目技术栈:SpringBoot、Redis、Mybatis、JWT、Nginx、WebSocket、Lua、Redission、SpringTask 项目难点亮点: 使用Nginx作为Http服务器,部署静态资源,实现反向代理和负载均衡。 使用了JWT令牌技术,用自定义拦截器实现了用户认证。 为了提高用户的点餐体验,本项目使用Redis缓存来提高响应速度,采用主动更新策略实现缓存数据的一致性。 本项目采用互斥锁+设置逻辑过期的策略来解决缓存击穿问题,防止大量请求访问热点key,导致MySQL崩溃。 优惠券秒杀业务:由于高并发和集群场景下会出现超卖、一人多单问题,本项目采用了分布式锁来解决线程并发问题,并且使用了红锁(redlock)算法保证分布式锁在集群环境的可靠性;为了进一步优化秒杀业务的吞吐量,使用了Stream消息队列实现了异步秒杀。 使用了AOP的设计思想,实现了自定义注解和切面类,用来完成公共字段填充的业务,避免代码冗余。 使用了WebSocket实现用户端和商家端的长连接,完成来单提醒和催单业务。