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

news2024/11/26 8:22:03

顾得泉:个人主页

个人专栏:《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

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


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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1625969.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何利用交易形态的失败进行现货黄金?

进行现货黄金理财,除了需要投资者对黄金投资有热情之外,有方法也是很重要的,光有热情而没有技术,我们的资金很可能会成为其他人的囊中之物。但如果有了现货黄金理财的技术,情况就可能扭转过来。下面我们就从买入的角度…

实战对抗DDoS攻击

引言 在当今数字化时代,网络安全威胁无处不在,其中分布式拒绝服务(DDoS)攻击因其强大的破坏性和难以防范性而备受关注。DDoS攻击通过控制多个僵尸节点向目标服务器发送海量请求,耗尽其网络带宽或计算资源,…

C语言面试题之相交链表

相交链表 实例要求 1、给定两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。2、如果两个链表不存在相交节点,返回 null 。示例: 实例分析 可以使用两种方法:哈希表方法和双指针方法。哈希表方法…

平抑风电波动的电-氢混合储能容量优化配置

这篇论文中的EMD分解法在非线性扰动信号分解上优于小波分解法,EMD分解出来的imf各频次信号,继而利用C2F实现信号重构,根据最大波动量限值剔除出需要储能平抑的波动量,继而用超级电容实现平抑(论文中用的碱水电解槽+燃料电池我认为有很多个点可以佐证不合适,但是电制氢是热…

惠州工厂降温、惠州惠城惠阳大亚湾仲恺高新惠城博罗车间降温通风

惠州工厂降温、惠州惠城惠阳大亚湾仲恺高新惠城博罗车间降温通风,惠州博罗车间降温、 惠州博罗的车间降温是一个涉及提高工作环境舒适度与生产效率的重要问题。以下是一些建议的降温方法: 通风换气:对于车间来说,良好的通风是降…

什么是独立服务器?独立服务器最全面介绍

独立服务器是单个客户端具有独占访问权的服务器类型,在服务器开发过程中,以前使用虚拟主机和虚拟独立服务器(VPS)的公司几乎不可避免地转向独立服务器。 什么是独立服务器? 独立服务器是单个客户端具有独占访问权的服…

4.28|重量级嘉宾携卓翼飞思RflySim平台亮相国际盛会,内容抢先看!

一. 大会背景 2024国际无人机应用及防控大会暨无人机产业博览会即将拉开帷幕,一场高规格、高水平的无人机产业应用国际盛会将再次点亮科技界的星空。 该大会由中国无人机产业创新联盟联合各方有影响力的单位,于4月27-29日在北京举办。组委会致力于将会…

亿道三防onerugged|三防车载电脑在港口货柜车上的应用

作为一个专业人员,我深知在港口货柜车运输中,三防车载电脑的应用对于提高工作效率和解决实际问题的重要性。亿道三防onerugged系列产品的三防车载电脑以其卓越的功能特点和可靠性,为港口货柜车运输带来了深远的影响。 首先,三防车…

Vue3 + Element-Plus 对接高德地图实现搜索提示选址、点击地图选址、自我定位功能(最新)

Vue3 Element-Plus 对接高德地图实现搜索提示选址、点击地图选址、自我定位功能&#xff08;最新&#xff09; 1、效果展示2、实现代码2.1 GaoDeMap.vue2.2 SystemDialog.vue2.3 UnusedList.vue.vue 1、效果展示 2、实现代码 2.1 GaoDeMap.vue <template><div style…

关于C++如何导出dll用于C++和C#的研究(内含有YOLOV5调用接口的制作完整代码)

文章目录 一、VS2019复现视频的易错点。二、[补充一个C接口的知识](https://www.bilibili.com/video/BV1tA411N7HB/?spm_id_from333.337.search-card.all.click&vd_sourcef99e21db912f182fe051b1b6b156e0e3)三、回归正题如何调用dll&#xff1f;前面第一个视频教会我们导出…

07 流量回放实现自动化回归测试

在本模块的前四讲里&#xff0c;我向你介绍了可以直接落地的、能够支撑百万并发的读服务的系统架构&#xff0c;包含懒加载缓存、全量缓存&#xff0c;以及数据同步等方案的技术细节。 基于上述方案及细节&#xff0c;你可以直接对你所负责的读服务进行架构升级&#xff0c;将…

SpringBoot引入Layui样式总是出现404

一般出现Layui样式文件如css&#xff0c;js404的错误 解决方案 &#xff08;1&#xff09;首先将其中的静态资源下载resources/static中 &#xff08;2&#xff09;在启动类中重写方法 package com.gq.booksystem;import org.mybatis.spring.annotation.MapperScan; import …

Java本地缓存技术选型(Guava Cache、Caffeine、EhCache)

前言 对一个java开发者而言&#xff0c;提到缓存&#xff0c;第一反应就是Redis。利用这类缓存足以解决大多数的性能问题了&#xff0c;我们也要知道&#xff0c;这种属于remote cache&#xff08;分布式缓存&#xff09;&#xff0c;应用的进程和缓存的进程通常分布在不同的服…

nvm下载的node没有npm

nvm下载的node没有npm 相信大家最近可能发现自己使用的nvm下载nodejs没有npm了。 会出现这种情况&#xff1a; C:\Users\89121>nvm install 15 Downloading node.js version 15.14.0 (64-bit)... Complete Downloading npm version 7.7.6... Download failed. Rolling Bac…

编写一个函数,该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法完整代码和详细的解析。 题干 编写…

SpringBoot Aop使用篇

Getting Started SpringBoot AOP的实践 AOP相关的概念&#xff1a; Aspect&#xff08;切面&#xff09;&#xff1a; Aspect 声明类似于 Java 中的类声明&#xff0c;在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。就是抽离出来的逻辑类&#xff0c;比如日志、权限…

【Redis 开发】全局ID生成器

全局ID生成器 为了增加ID的安全性&#xff0c;我们可以不直接使用Redis自增的数值&#xff0c;而是拼接一些其他信息&#xff1a; ID的组成部分&#xff1a; 符号位:1bit,一直为0 时间戳:31bit&#xff0c;一秒为单位&#xff0c;可以使用69年 序列号:32bit&#xff0c;秒内…

深度学习系列64:数字人wav2lip详解

1. 整体流程 第一步&#xff0c;加载视频/图片和音频/tts。用melspectrogram将wav文件拆分成mel_chunks。 第二步&#xff0c;调用face_detect模型&#xff0c;给出人脸检测结果&#xff08;可以改造成从文件中读取&#xff09;&#xff0c;包装成4个数组batch&#xff1a;img…

一次违法网站的渗透经历

0x01 前言 在一次攻防演练中&#xff0c;我发现了一个有趣的渗透路径。在信息收集阶段&#xff0c;我注意到目标网站和用户资产网站共享相同的IP网段。这意味着它们可能在同一台服务器上托管&#xff0c;或者至少由同一家互联网服务提供商管理。这种情况为我们的渗透测试提供了…

MySQL数据库运维:运行监控及解决sql执行死锁问题

前言 在现代数据密集型应用程序的开发和部署中&#xff0c;MySQL数据库的运维是至关重要的环节之一。一个良好设计和维护的MySQL数据库系统可以确保数据的准确性、可靠性和高效的访问&#xff0c;从而支持业务的顺利运行。然而&#xff0c;随着业务规模的增长和复杂性增加&…