C++实战演练---负载均衡在线oj项目预热

顾得泉:个人主页

个人专栏:《Linux操作系统》 《C++从入门到精通》  《LeedCode刷题》

键盘敲烂,年薪百万!


前言

       学习准备了快一年时间,心心念念的实战演练终于可以开始了,话不多说,直接进入主题!!!


一、项目简介

       该项目是基于负载均衡的在线OJ平台,用户可以在浏览器访问各个题目,在编辑区编写代码提交,后端能够自动分配服务器资源,保持平衡的情况下为用户提供良好的编程运行环境,让代码快速运行和提交。

二、所需技术及开发环境

所需技术:

        C++ STL 标准库

        Boost 准标准库(字符串切割)

        cpp-httplib 第三方开源网络库

        ctemplate 第三方开源前端网页渲染库

        jsoncpp 第三方开源序列化、反序列化库

        负载均衡设计

        多进程、多线程

        MySQL C connect

        Ace前端在线编辑器(简单使用)

        html/css/js/jquery/ajax (简单使用)

开发环境:

        Centos 7 云服务器

        vscode

        Mysql Workbench

三、项目结构

我们的项目核心是三个模块

       1. comm : 公共模块

       2. compile_server : 编译与运行模块

       3. oj_server : 获取题目列表,查看题目编写题目界面,负载均衡,其他功能

一、leetcode结构

       我们只实现类似 leetcode 的题目列表+在线编程功能。

二、项目宏观结构

三、实现思路

       1. 先编写 compile_server

       2. oj_server

       3. version1 基于文件版的在线OJ

       4. 前端的页面设计

       5. version2 基于 MySQL 版的在线OJ

       目前所建立的结构树 :

四、预备工作

一、升级gcc

       用老的编译器,要么编译不通过,要么直接运行报错,大家可以自行百度搜索下载最新版的gcc,我当前的版本已经升级。

二、安装jsoncpp

   sudo yum install -y jsoncpp-devel

三、安装boost库

     sudo yum install -y boost-devel

       这个库安装稍慢,是我们所需要的开发库。


结语:关于该项目的简介这里就结束了,下篇文展将带大家深入实现项目部分功能,如果大家有什么问题,欢迎大家在评论区留言~~~