• 【负载均衡在线OJ项目日记】项目简介


    目录

    前言

    什么是负载均衡

    所用的技术和开发环境

    所用技术

    开发环境

    项目的宏观结构

    leetcode 结构

    结构

    编写思路


    前言

    从C语言的文章到现在Linux网络部分,我已经涉猎了很多知识;终于在今天我要开始搞项目了,通过项目我也可以开始慢慢复习前面已将遗忘的知识点;给大家带来的第一个项目是负载均衡在线OJ,就类似于Leetcode、牛客一样的在线判题功能。我们只是简单仿写它们的答题模块,至于其他的模块,也没有能力。

    什么是负载均衡

    其实博主一句两句也说不清楚,容易误导大家;这里给大家AI的回答。

    负载均衡是一种在计算机网络或服务器系统中分配工作负载的技术。它的目标是确保所有的资源被充分利用,同时避免某些资源过载而导致系统性能下降或崩溃。

    简单来说,负载均衡将请求或任务分配给多个服务器或资源,以确保它们能够有效地处理。这通常通过一系列算法和策略来实现,包括基于轮询、基于权重、基于响应时间等。负载均衡器通常位于网络中的一个集中点,它监视服务器的负载状况,并根据预设的规则来分发请求,以实现最佳的性能和可用性。

    在大型网站、应用程序或服务中,负载均衡是至关重要的,因为它能够有效地管理流量,防止单个服务器过载,并提高整个系统的可伸缩性和稳定性。

    简单来说就像LeetCode,每时每刻都有人会访问进行提交代码测评;我们要将这些提交均衡的分配到每个后端的服务器。

    所用的技术和开发环境

    所用技术

    • 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 : 获取题目列表,查看题目编写题目界面,负载均衡,等其他功能;采用MVC设计模式,调用后端编译模块,访问文件或者数据库将题目列表和编辑信息提供给用户;

    项目编译成功后形成两个模块:编译服务器、在线OJ服务器;两个服务器采用网络套接字进行通信,OJ服务器将编译模块部署在服务器的多台机器上,OJ服务器只有一台;这样的话,我们的OJ服务器负载均衡的选择后端编译服务器,来让我能够以集群处理能力的方式对外输出在线OJ服务,所以这是一个可扩展的项目。

    leetcode 结构

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

    结构

     

    编写思路

    1. 先编写 compile_server
    2. oj_server
    3. version1:基于文件版的在线OJ
    4. 前端的页面设计
    5. version2:基于 MySQL 版的在线O 


    今天对项目的简介和结构的分享到这就结束了,希望大家读完后有很大的收获,也可以在评论区点评文章中的内容和分享自己的看法;个人主页还有很多精彩的内容。您三连的支持就是我前进的动力,感谢大家的支持!!! 

  • 相关阅读:
    [附源码]计算机毕业设计JAVAjsp校园志愿者服务管理系统
    C++ -- 位运算与常用库函数(ACWING语法基础)
    计算机毕业设计Java人才申报系统(源码+系统+mysql数据库+lw文档)
    干货!解决IDEA中项目出现cannot resolve method ‘XXXXX(java.lang.String)’问题
    利用可视化结果,点击出现对应的句子
    直播课堂系统08补-腾讯云对象存储和课程分类管理
    【附源码】计算机毕业设计SSM视频网站
    python将dataframe指定列更新至Mysql
    Spring Boot - Junit4 / Junit5 / Spring Boot / IDEA 关系梳理
    spark-core 源码
  • 原文地址:https://blog.csdn.net/qq_55119554/article/details/138504473