# 负载均衡式在线OJ **Repository Path**: zhaobohan/load-balancing-online-oj ## Basic Information - **Project Name**: 负载均衡式在线OJ - **Description**: 这是一个负载均衡式OJ的项目,结合了仿RabbitMQ消息队列项目 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: http://111.230.81.226:8080/login.html - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2024-06-03 - **Last Updated**: 2025-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: 项目, 负载均衡, 消息队列, OJ, Docker ## README # 负载均衡式在线OJ系统 ## 项目简介 本项目致力于构建一个高效、可扩展的在线编程评测(Online Judge, OJ)平台,通过实现两种不同的负载均衡策略——基于`httplib`的直接通信方案与采用消息队列机制的分布式处理方案,确保了系统的高性能与稳定性。 项目已进行了Docker部署功能,可以直接使用如下命令即可进行部署: ```shell docker compose up ``` ## 安装教程 ### 环境准备 确保您的开发环境已配置好以下基础工具: - C++ 编译器(推荐GCC 8+ 或 Clang) - CMake(版本3.10+) ### 依赖安装步骤 #### ctemplate 安装`ctemplate`库在Ubuntu或其他基于Debian的Linux发行版上,可以通过几个简单步骤完成。`ctemplate`是一个由Google开发的模板引擎库,用于简化动态网页内容生成。以下是安装指南: ##### 1. 安装依赖 首先,确保系统中安装了必要的构建工具和依赖项。在终端中输入以下命令: ```bash sudo apt-get update sudo apt-get install build-essential sudo apt-get install libgoogle-perftools-dev ``` ##### 2. 下载ctemplate源码 接下来,从Google的ctemplate GitHub仓库下载最新版本的源代码。你可以使用`git`克隆仓库,或者直接下载压缩包。这里演示使用`git`克隆: ```bash git clone https://github.com/google/ctemplate.git cd ctemplate ``` 如果不想使用`git`,也可以直接从[GitHub Release页面](https://github.com/google/ctemplate/releases)下载源代码压缩包,并解压。 ##### 3. 配置并编译 在源代码目录中,运行以下命令来配置构建过程: ```bash mkdir build cd build cmake .. ``` 如果需要自定义安装路径或其它选项,可以在`cmake`命令后面加上相应参数。例如,要安装到特定目录,可以使用`-DCMAKE_INSTALL_PREFIX=/your/install/path`。 接下来,编译并安装`ctemplate`: ```bash make sudo make install ``` #### jsoncpp ```bash git clone https://github.com/open-source-parsers/jsoncpp.git cd jsoncpp mkdir build && cd build cmake .. && make && sudo make install ``` #### Redis & hiredis - 安装Redis服务器。 - hiredis安装: ```bash git clone https://github.com/redis/hiredis.git cd hiredis # 根据需求编译与安装 ``` #### mysqlclient 要在Ubuntu上安装用于C语言链接的`mysqlclient`库(通常是指MySQL Connector/C或者libmysqlclient),你可以按照以下步骤操作: ##### 1. 更新系统包 首先,确保你的系统软件包是最新的,打开终端并输入: ```bash sudo apt update ``` ##### 2. 安装MySQL服务器(可选) 如果你的应用需要本地运行MySQL服务器,可以安装它。但如果你的应用仅需要客户端库来连接远程数据库,这一步可以跳过。 ```bash sudo apt install mysql-server ``` ##### 3. 安装MySQL客户端库 安装`libmysqlclient-dev`包,这个包包含了开发MySQL应用程序所需的头文件和库文件。 ```bash sudo apt install libmysqlclient-dev ``` #### muduo/protobuf 请参照对应文件内的详细安装教程进行安装 ### 构建项目 进入项目根目录,执行以下命令: ```bash make make output ``` ## 使用说明 选择您感兴趣的版本(Version 1 或 Version 2),然后执行: ```bash make make output ``` 生成的可执行文件位于`output`目录下,直接运行即可启动服务。 ## 参与贡献 我诚邀对此项目感兴趣的开发者加入,共同探讨、贡献代码或提出宝贵建议。请通过电子邮件联系我: - **邮箱**: zhaobohan_free@163.com