综述
该项目使用了 BS架构
实现了可以在线的对用户的题目进行 负载均衡式
的评判,同时可以对用户进行增删改查,以及用户的注册登陆功能
示例
编译服务器
- 在线服务器将用户需要进行判断的代码交给后端的判题服务器
- 判题服务器将获得的代码交给
compiler_runner
类,来执行代码的编译和运行的功能 compile_runner
分别将代码先交给compile
类,进行代码的编译,生成一个可执行文件compile_runner
再将生成的可执行文件交给runne
r类,来进行代码的运行,并将结果通过重定向
生成临时文件
的方式层层递进,同时服务器也会生成相应的日志
,反馈给用户
使用层状结构,实现代码之间的 解耦
,低耦合,高类聚
判题服务器一经上线,就会发出
http请求
申请加入到在线服务器的后端判题服务器集合
中,供在线服务器进行选择,实现负载均衡
在线服务器
- 获得首页的首页
- 获得网页的题目列表
- 用户的登陆,注册,题库的增删改查
- 题目的编译运行
在线服务器使用了 MVC
架构
请求服务的编译运行功能就需要用到 负载均衡
模块
当要进行路由判断功能时,加载负载均衡模块,使用相应的负载均衡算法(使用哈希的方法来选择机器),对相应的判题服务器发起请求,获得反馈
数据库图表
提前加载进可供选择的后端编译机器
ip | port |
---|
题目信息
题号 | 标题 | 难度 | 题目表述 | 显示给用户的函数 | 测试样例 | cpu的时间限制 | 内存限制 |
---|
用户
用户名 | 密码 |
---|