负载均衡OJ:
项目结果展示:
图先欠着,做完了项目再补上,太鼠了- 做完了,但是不太好写博客,在考虑从文件出发还是从功能出发去讲这个项目
项目技术栈概述:
技术栈:
后端:
- STL模板库
- Boost标准库 - 用于字符串切割
- cpp-httplib 第三方开源网络库 - 化简Socket使用
- jsoncpp 第三方开源序列化&反序列化库 - 网络传输字符串
- 负载均衡设计算法
- 多进程 & 多线程
- MySql C connect
前端:
- html / css / js
- Jquery / Ajax
- Ace前端在线编辑器
- ctemplate 第三方开源前端网页渲染库
开发环境:
开发工具:
- Vscode
- 下载Remote - SSH插件:
- 安装完成后:F1 / Fn+F1,选择Add SSH Host:
- 添加云服务器和用户:
ssh username@云服务器公网ip
-
添加成功后的提示:
- 想看看连接配置可以点击Open Config看看
- 想快点连接云服务器就直接Connect
-
准备连接云服务器:
-
输入刚才准备连接用户的密码:
-
连接成功:打开文件,开始写项目
-
进入/切换文件夹需要权限,再输入一次密码:
-
PS:连接成功的标志
运行环境:
项目目录结构:
功能模块:
- 四大功能模块
- client:只负责发起请求
- 请求查看题目列表
- 请求查看具体某题
- 请求提交代码
- MySql/文件:
- 存储静态资源,如html/题目描述
- oj_server:
- 识别不同的请求类型
- 对于非提交代码,直接返回静态资源
- 将需要编译的代码提交给选定的compile_server
- compile_server:
- 编译运行所提交的代码
- 返回格式化的结果
编写思路:
- 先编写功能较简单的compile_server
- 再编写oj_server
- Version1:文件存储题目
- 前端页面设计
- Version2:Mysql存储题目