• 【负载均衡在线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 


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

  • 相关阅读:
    物联网开发笔记(18)- 使用Micropython开发ESP32开发板之点亮LED和操作PWM呼吸灯
    基础复习——为activity补充活动信息——利用资源文件配置字符串——利用元数据传递配置信息——给页面注册快捷方式...
    【DevOps基础篇】容器化架构基础设施监控方案
    图的拉普拉斯矩阵
    如何全面去理解通达信接口API?
    C语言学习笔记(十六)
    Kubernetes技术与架构-网络 3
    【CUDA OUT OF MEMORY】【Pytorch】计算图与CUDA OOM
    【机器学习可解释性】4.SHAP 值
    二叉树的前序、中序、后序、层序遍历
  • 原文地址:https://blog.csdn.net/qq_55119554/article/details/138504473