# 成绩查询系统 (RSJselet) 这是一个高性能的学生成绩查询系统,支持12,000人同时在线查询。 ## 主要特性 - 支持高并发查询(12,000人同时在线) - 使用Redis缓存减轻数据库压力 - 提供等待室机制避免系统过载 - 自动释放数据库连接,避免资源泄漏 - 手机号验证和内网可访问 ## 系统架构 - 后端: FastAPI + Uvicorn - 数据库: MySQL - 缓存: Redis - 前端: HTML + CSS ## 快速开始 系统提供了测试数据和快速启动脚本,方便本地开发和测试: ### Windows系统 ```bash # 修改run_with_test_data.bat中的数据库连接信息 # 然后运行批处理文件 run_with_test_data.bat ``` ### Linux/Mac系统 ```bash # 修改run_with_test_data.sh中的数据库连接信息 chmod +x run_with_test_data.sh ./run_with_test_data.sh ``` 启动后访问 http://localhost:8000 即可使用系统。 ### 测试数据 系统提供了约1000条测试数据,包括: - 江苏省教育局的语文、数学、英语教师岗位 - 淮安市政府的行政助理、文案策划岗位 - 淮安市医院的内科医生、外科医生、护士岗位 - 江苏省人社厅的人事专员、劳动监察员、社保专员岗位 测试账号示例: - 准考证号: 101081100101,手机号: 13800000001 - 准考证号: 101081100201,手机号: 13800000006 - 准考证号: 101081100301,手机号: 13800000010 ## 部署方式 系统提供多种部署方式: ### Docker部署(推荐) 使用Docker Compose一键部署所有服务: ```bash # 构建并启动 docker-compose up -d ``` ### Linux可执行文件部署 将系统打包为单个可执行文件,方便在Linux服务器上部署: ```bash # 构建可执行文件 chmod +x build_executable.sh ./build_executable.sh # 部署到服务器 scp -r dist/* user@server:/path/to/deploy/ # 在服务器上启动 cd /path/to/deploy/ ./start.sh ``` ### 更多详情 请查看 [部署指南](DEPLOY.md) 获取更多详细信息。 ## 高并发支持 系统已经过优化,可以支持12,000人同时查询: 1. **连接池优化**: 高效管理数据库和Redis连接 2. **等待室机制**: 控制并发查询数量,防止系统崩溃 3. **多进程支持**: 利用多核CPU提高处理能力 4. **缓存策略**: 自适应缓存热门数据 ## 配置和扩展 所有系统参数都可以通过环境变量配置,请参考 [部署指南](DEPLOY.md) 获取完整配置选项。 如需支持更大规模并发,可参考扩展策略进行水平或垂直扩展。 # 基本使用 - 从数据库获取真实数据、测试等待室和高并发 python cstest.py --concurrency 100 --total 200 # 不测试等待室,只测试并发性能 python cstest.py --no-waiting-room --concurrency 500 --total 1000 # 专注于测试等待室功能 python cstest.py --mode waiting-room --concurrency 200 --total 300 # 高强度缓存测试 python cstest.py --mode cache