• 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

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


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

  • 相关阅读:
    广州市车联网先导区LTE-V2X 车载直连通讯设备技术规范
    sqllabs 1~6通关详解
    MySQL事务隔离级别详解
    【Java 基础篇】Java Consumer 接口详解
    学习vue笔记一——初识vue
    11_跳表(Skip List)
    树的遍历(PTA)
    HTTP协议发展史
    添加IDEA到右键打开里面
    javaee spring整合mybatis
  • 原文地址:https://blog.csdn.net/m0_71746526/article/details/138112882