返回项目列表
PERSONAL PROJECT · 2026 · FULL CYCLE

校园活动报名系统

面向学生、活动发布者与管理员,覆盖活动发布、组合查询、报名审核、签到积分和评价反馈,并对热门活动场景进行缓存与并发验证。

角色独立开发后端Spring Boot · MyBatis数据MySQL · Redis验证JMeter 本地压测
项目概况 角色、技术与展示边界
角色独立开发后端Spring Boot · MyBatis数据MySQL · Redis验证JMeter 本地压测
校园活动中心INTERACTIVE PREVIEW
发现活动讲座 · 实践 · 志愿
周五 14:00 · 实训楼 A201Java 后端实战营剩余 6 个名额
① 组合筛选② 提交报名③ 签到评价
依据项目页面结构重绘 · 脱敏模拟数据
打开完整工作区
招聘者速览 · 90s操作产品 → 查看职责 → 核对证据
工程调试台 · Debug复现状态 → 观察数据 → 检查边界
EXPLORE THE PRODUCT推荐体验路线点击任一节点,直接进入对应界面
01 / PRODUCT

校园活动报名管理系统

按原项目界面复刻学生端与发布者端:可完成活动查询、报名审核、签到积分、评价与参与统计,并切换到并发机制演示。

campus.life / 活动中心交互原型 · 模拟数据

校园活动报名管理系统

1发布活动→2学生报名→3资格审核→4签到积分→5评价反馈
● 选择活动报名,或切换发布者端创建一场新活动。
活动浏览检索到 4 个活动
活动名称类型地点发布者时间剩余操作
讲座实训楼 A201计算机协会2026-10-18 14:006
比赛中心操场校学生会2026-10-20 08:0013
志愿公益大学生活动中心青年志愿者协会2026-10-23 09:3014
班级活动艺术楼 302光影社2026-10-26 15:000
当前活动

Java 后端实战营

计算机协会 · 实训楼 A201 · 2026-10-18 14:00

人数上限18
剩余名额6
我的状态未报名
02 / BUSINESS

完整活动业务闭环

个人实现

领域建模与接口

独立完成活动、报名、审核、签到积分与评价反馈的数据建模和 RESTful 接口。

个人实现

动态组合查询

使用 MyBatis 动态 SQL 支持类型、时间、关键词和发布者等条件,并结合分页与索引策略。

个人实现

缓存与名额预扣

热门列表采用 Cache-Aside;报名链路使用 SETNX 减少重复提交、DECR 原子预扣名额。

02 / CONCURRENCY BOUNDARY

缓存与一致性设计

Cache-Aside

热门列表缓存

未命中时回源数据库并写入 Redis,活动变更后主动失效缓存。

短时去重

SETNX 请求保护

降低重复点击竞争,30 秒 TTL 用于异常释放,不作为持续防重窗口。

最终兜底

唯一索引与事务

Redis 负责快速拒绝,数据库约束负责最终一致性。

03 / IMPLEMENTATION

预扣、回补与缓存失效

Cache-Aside

热门列表缓存

查询未命中时回源数据库并写入 Redis,设置 30 分钟 TTL;活动变更后主动失效缓存。

短时去重

SETNX 请求保护

降低同一用户重复点击造成的并发竞争,30 秒 TTL 用于异常情况下自动释放,不作为持续防重窗口。

原子预扣

DECR 与回补

名额预扣后再执行数据库写入;名额不足立即回补,捕获到的落库失败也执行 INCR 回补。

03 / RESULT

本地验证结果

670,085

列表接口样本

本地 localhost JMeter 报告中的请求样本数,错误率为 0。

9,564/s

缓存读吞吐

JMeter 报告中的本地 50 并发结果,平均响应约 4 ms。

10 / 50

名额一致性核对

50 个不同用户竞争 10 个名额,最终数据库记录数核对为 10。

测试环境:本地 Windows、localhost、单机应用。证据抽屉中保留环境与口径说明。