# 基于负载均衡的在线OJ **Repository Path**: byte-binxin/online-judgement ## Basic Information - **Project Name**: 基于负载均衡的在线OJ - **Description**: 基于负载均衡的在线OJ项目 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: https://gitee.com/byte-binxin - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 1 - **Created**: 2022-08-04 - **Last Updated**: 2024-12-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于负载均衡的在线OJ #### 介绍 该项目是基于负载均衡的在线oj,模拟我们平时刷题网站(leetcode和牛客)写的一个在线判题系统。 项目主要分为五个模块: - 编译运行模块:基于httplib库搭建的编译运行服务器,对用户提交的代码进行测试 - 业务逻辑模块:基于httplib库并结合MVC模式框架搭建oj服务器,负责题目获取,网页渲染以及负载均衡地将用户提交代码发送给编译服务器进行处理 - 数据管理模块:基于MySQL数据库对用户的数据、题目数据进行管理 - 会话模块:基于cookie和session针对登录用户创建唯一的会话ID,通过cookie返回给浏览器 - 公共模块:包含整个项目需要用到的第三方库以及自己编写的工具类的函数 #### 开发环境 - Centos7.6、C/C++、vim、g++、MySQL Workbench、Postman #### 主要技术 - C++ STL 标准库 - cpp-httplib 第三方开源网络库 - ctemplate google第三方开源前端网页渲染库 - jsoncpp 第三方开源序列化、反序列化库 - 负载均衡设计 - MVC模式框架 - ajax - MySQL #### 项目框架图 ![输入图片说明](imageimage.png) #### 使用说明 运行`./build.sh`可以生成项目的可执行程序