# ProjectCode **Repository Path**: RuofengMao/project-code ## Basic Information - **Project Name**: ProjectCode - **Description**: 个人项目代码 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-10-31 - **Last Updated**: 2025-11-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目集合 | Project Collection 本仓库包含多个高质量的软件工程项目,涵盖大数据分析、系统编程、高性能网络服务器等领域。 > **开发者**:吴振龙、李宗帛、毛若沣、肖汉旭等 > **时间跨度**:2025年1月 - 2025年4月 --- ## 📋 目录 - [项目概览](#项目概览) - [项目详情](#项目详情) - [1. 基于Hadoop生态的招聘大数据多维可视化分析系统](#1-基于hadoop生态的招聘大数据多维可视化分析系统) - [2. 高并发内存调度系统](#2-高并发内存调度系统) - [3. 主从式事件驱动服务器](#3-主从式事件驱动服务器) - [4. 个人网站HTTP服务器](#4-个人网站http服务器) - [技术栈总览](#技术栈总览) - [项目结构](#项目结构) --- ## 🎯 项目概览 | 项目名称 | 技术栈 | 开发周期 | 目录 | |---------|--------|---------|------| | 招聘大数据分析系统 | Python, Hadoop, SpringBoot, MySQL | 2025.4.7 - 2025.4.30 | `tfsu2201/` | | 高并发内存调度系统 | C++, 多线程, 内存池 | 2025.1.15 - 2025.2.2 | `MemSchedulingSys/` | | 主从式事件驱动服务器 | C++, Reactor模型, Epoll | 2025.3.1 - 2025.3.25 | `ReactorXServer/` | | 个人网站HTTP服务器 | C++, HTTP协议 | - | `Httpserver(personal website)/` | --- ## 📚 项目详情 ### 1. 基于Hadoop生态的招聘大数据多维可视化分析系统 #### 📖 项目简介 **合作单位**:天津外国语大学实训小组 & 天津市融创软通科技股份有限公司 **开发周期**:2025年4月7日 - 2025年4月30日 基于Hadoop生态系统构建的智能招聘分析平台,通过分布式爬虫采集并处理全网招聘数据,利用交互式数据大屏实现岗位与薪资的多维度可视化分析,为求职者提供数据驱动的决策支持。 #### 🔧 技术栈与架构设计 **核心技术**: - **数据采集层**:Python (Selenium/Pandas) - 实现分布式网络爬虫,采集主流招聘平台数据 - **数据处理层**:Hadoop MapReduce - 分布式计算框架,处理海量招聘数据 - **数据存储层**: - HDFS - 分布式文件系统,存储原始数据 - MySQL - 关系型数据库,存储结构化分析结果 - **应用服务层**:Spring Boot - 提供RESTful API接口 - **可视化层**:Alibaba Cloud DataV - 交互式大屏展示 **架构特点**: - 采用分布式架构,支持TB级数据处理 - 实现数据采集、清洗、分析、可视化的全流程自动化 - 多维度分析:岗位类型、薪资分布、地区分布、学历要求、工作经验等 #### 📂 项目结构 ``` tfsu2201/ ├── doc/ # 项目文档与展示图 ├── hadoop/ # Hadoop配置文件 ├── project/ # 项目源代码 │ ├── Crawler/ # 爬虫模块 │ ├── Together4/ # SpringBoot后端服务 │ ├── AricLiproject/ # 数据处理模块 │ ├── MaoRuofengproject/ # MapReduce分析 │ └── WuZhenlongproject/ # 可视化数据处理 └── 可视化大屏展示图.png ``` #### 🎯 核心功能 - ✅ 智能爬虫:自动化采集猎聘、智联招聘等平台数据 - ✅ 数据清洗:处理缺失值、异常值,标准化数据格式 - ✅ 多维分析:薪资分布、岗位热度、区域分析、教育背景分析 - ✅ 大屏展示:实时动态展示分析结果,交互式数据探索 --- ### 2. 高并发内存调度系统 #### 📖 项目简介 **开发周期**:2025年1月15日 - 2025年2月2日 设计并实现高性能多线程内存管理组件,通过三级缓存架构模拟 Google TCMalloc 核心机制,解决传统系统内存分配函数在并发场景下的锁竞争、内存碎片及低效分配问题。多线程情况下利用池化技术实现高并发内存调度系统,实现高效可靠内存管理。 #### 🔧 技术栈与架构设计 **核心技术**:C++, 多线程编程, TLS (Thread Local Storage), 数据结构 **三级内存池架构**: 1. **线程缓存层 (Thread Cache)** - 采用 TLS (Thread Local Storage) 技术实现线程私有内存池 - 使用自由链表 (Free List) 管理小内存块 - 实现无锁化内存分配,避免线程间竞争 - 针对小对象 (≤256KB) 的快速分配与释放 2. **中央缓存层 (Central Cache)** - 采用 SpanList + 哈希桶结构 - 实现批量内存迁移,提升内存利用效率 - 惰性回收机制,减少频繁的内存映射操作 - 负责 Thread Cache 与 Page Cache 之间的协调 3. **页缓存层 (Page Cache)** - 页式管理 (Page-based Management) - 基数树 (Radix Tree) 实现大内存快速定位 - 内存碎片整理与合并 - 与系统内存交互的唯一接口 #### 📂 项目结构 ``` MemSchedulingSys/ ├── ConcurrentMemoryPool/ │ ├── Common.hpp # 公共定义与工具函数 │ ├── ObjectPool.hpp # 对象池实现 │ ├── ThreadCache.hpp/.cpp # 线程缓存实现 │ ├── CentralCache.hpp/.cpp# 中央缓存实现 │ ├── PageCache.hpp/.cpp # 页缓存实现 │ ├── PageMap.hpp # 页面映射表 │ ├── ConcurrentAlloc.hpp # 并发分配接口 │ ├── Benchmark.cpp # 性能测试 │ └── main.cpp # 主程序 └── image/ # 架构设计图 ``` #### 🎯 核心特性 - ✅ **高性能**:多线程环境下优于系统 malloc/free - ✅ **低碎片**:通过内存池机制有效减少内存碎片 - ✅ **无锁化**:Thread Cache 层实现线程独立,避免锁竞争 - ✅ **智能管理**:自动批量分配与回收,动态调整内存池大小 #### 📊 性能指标 - 支持高并发场景下的内存分配 - 相比系统 malloc 性能提升显著 - 内存利用率优化,碎片率降低 --- ### 3. 主从式事件驱动服务器 #### 📖 项目简介 **开发周期**:2025年3月1日 - 2025年3月25日 参考 muduo 库 "One Thread One Loop" 式主从 Reactor 模型,实现高并发事件驱动服务器。通过实现事件驱动组件,简洁快速完成搭建一个高性能服务器。并且通过组件内提供的不同应用层协议支持,可以快速完成一个高性能应用服务器的搭建。 #### 🔧 技术栈与架构设计 **核心技术**:C++11/14, Reactor模型, Epoll, 多线程, HTTP协议 **Reactor 架构设计**: 1. **主 Reactor (Main Reactor)** - 负责监听新连接的到来 - 使用 Acceptor 组件接受连接 - 采用智能指针管理连接生命周期 - 将新连接分发到从 Reactor 线程池 2. **从 Reactor (Sub Reactor Pool)** - 基于 Epoll 的 I/O 多路复用 - 每个线程独立的事件循环 (EventLoop) - 多线程处理并发连接的读写事件 - 支持定时器管理 (TimerWheel) 3. **组件化设计** - **Socket**:封装底层套接字操作 - **Channel**:事件管理与回调分发 - **Buffer**:高效的缓冲区管理 - **Connection**:连接状态管理 - **EventLoop**:事件循环核心 #### 📂 项目结构 ``` ReactorXServer/ ├── source/ │ ├── TCPserver/ # TCP服务器实现 │ │ ├── mudo_tcp.hpp # TCP服务器核心组件 │ │ ├── echo_server.hpp # Echo服务器示例 │ │ └── socket.hpp # Socket封装 │ └── HTTPserver/ # HTTP服务器实现 │ ├── source/ │ │ ├── httpserver.hpp # HTTP服务器 │ │ ├── httprequest.hpp # HTTP请求解析 │ │ ├── httpresponse.hpp # HTTP响应生成 │ │ └── httpcontext.hpp # HTTP上下文 │ └── wwwroot/ # 静态资源目录 ├── example/ # 示例代码 │ ├── eventloop.hpp # 事件循环 │ ├── poller.hpp # Epoll封装 │ ├── tcpserver.hpp # TCP服务器框架 │ └── timerwheel.hpp # 时间轮定时器 └── image/ # 架构图与文档 ``` #### 🎯 核心功能 - ✅ **高并发处理**:基于 Epoll 的 I/O 多路复用 - ✅ **Reactor 模型**:主从 Reactor + 线程池 - ✅ **智能连接管理**:基于智能指针的 RAII 管理 - ✅ **协议支持**:TCP 协议、HTTP/1.1 协议 - ✅ **定时器管理**:时间轮算法实现高效定时器 - ✅ **静态文件服务**:支持 HTML、CSS、JS、图片等静态资源 #### 📊 性能测试 **测试工具**:WebBench **测试条件**: - 并发连接数:4000 - 测试时长:200秒 - 总请求数:400,000+ **测试结果**: - ✅ QPS:2033 (每秒请求数) - ✅ 成功率:99.5% - ✅ 稳定运行:200秒无崩溃 - ✅ 内存稳定:无内存泄漏 #### 🌟 技术亮点 - 参考 muduo 库设计思想,实现工业级服务器架构 - One Thread One Loop 设计,避免线程间数据竞争 - 智能指针管理连接生命周期,自动资源回收 - 组件化设计,易于扩展和维护 --- ### 4. 个人网站HTTP服务器 #### 📖 项目简介 基于 C++ 实现的轻量级 HTTP 服务器,用于托管个人作品展示网站。支持静态资源服务,提供项目展示、个人简介、联系方式等功能。 #### 🔧 技术栈 - **后端**:C++, HTTP/1.1 协议 - **前端**:HTML5, CSS3, JavaScript, Bootstrap - **特色**:响应式设计,动画效果,交互式项目展示 #### 📂 项目结构 ``` Httpserver(personal website)/ ├── ServerMain.cpp # 服务器主程序 ├── Http.hpp # HTTP协议处理 ├── TCPServer.hpp # TCP服务器框架 ├── Socket.hpp # Socket封装 └── wwwroot/ # 网站根目录 ├── index.html # 首页 ├── project.html # 项目展示 ├── games.html # 游戏作品 ├── contact-me.html # 联系方式 └── assets/ # 静态资源 ├── css/ # 样式文件 ├── js/ # JavaScript脚本 └── images/ # 图片资源 ``` #### 🎯 网站功能 - ✅ 项目作品展示 - ✅ 技能与经验介绍 - ✅ 个人简历展示 - ✅ 联系表单 - ✅ 游戏作品展示 --- ## 💻 技术栈总览 ### 编程语言 - ![C++](https://img.shields.io/badge/C++-00599C?style=flat&logo=c%2B%2B&logoColor=white) **C++11/14** - 系统编程、网络服务器 - ![Python](https://img.shields.io/badge/Python-3776AB?style=flat&logo=python&logoColor=white) **Python** - 数据爬虫、数据处理 - ![Java](https://img.shields.io/badge/Java-ED8B00?style=flat&logo=openjdk&logoColor=white) **Java** - Spring Boot 后端开发 ### 大数据技术 - **Hadoop HDFS** - 分布式文件系统 - **MapReduce** - 分布式计算框架 - **MySQL** - 关系型数据库 ### 系统编程 - **多线程编程** - pthread, C++11 thread - **网络编程** - Socket, Epoll, I/O多路复用 - **内存管理** - 自定义内存池, TCMalloc算法 ### 框架与工具 - **Spring Boot** - Java Web开发框架 - **Selenium** - 浏览器自动化 - **Pandas** - 数据处理与分析 - **DataV** - 阿里云数据可视化 ### 设计模式与架构 - **Reactor模式** - 事件驱动架构 - **对象池模式** - 资源复用 - **RAII** - 资源管理 - **智能指针** - 自动内存管理 --- ## 📁 项目结构 ``` project-code/ │ ├── tfsu2201/ # 招聘大数据分析系统 │ ├── doc/ # 项目文档与演示 │ ├── hadoop/ # Hadoop配置 │ └── project/ # 源代码 │ ├── Crawler/ # 数据爬虫 │ ├── Together4/ # Spring Boot后端 │ └── [其他成员项目目录]/ # 数据处理模块 │ ├── MemSchedulingSys/ # 高并发内存调度系统 │ ├── ConcurrentMemoryPool/ # 内存池源代码 │ │ ├── ThreadCache.hpp/.cpp # 线程缓存 │ │ ├── CentralCache.hpp/.cpp # 中央缓存 │ │ ├── PageCache.hpp/.cpp # 页缓存 │ │ └── Benchmark.cpp # 性能测试 │ └── image/ # 架构设计图 │ ├── ReactorXServer/ # 主从式事件驱动服务器 │ ├── source/ # 源代码 │ │ ├── TCPserver/ # TCP服务器 │ │ └── HTTPserver/ # HTTP服务器 │ ├── example/ # 组件示例 │ └── image/ # 架构图与文档 │ ├── Httpserver(personal website)/ # 个人网站服务器 │ ├── ServerMain.cpp # 主程序 │ └── wwwroot/ # 网站资源 │ └── README.md # 本文件 ``` --- ## 🎓 学习价值 这些项目涵盖了计算机科学的多个核心领域: 1. **分布式系统**:通过 Hadoop 项目学习大数据处理与分布式计算 2. **系统编程**:深入理解操作系统内存管理机制 3. **网络编程**:掌握高性能服务器开发技术 4. **工程实践**:真实项目经验,包括需求分析、架构设计、编码实现、测试优化 --- ## 📈 性能表现 | 项目 | 关键指标 | 性能表现 | |------|---------|---------| | 招聘大数据系统 | 数据处理量 | TB级数据处理能力 | | 内存调度系统 | 并发性能 | 优于系统malloc, 降低碎片率 | | 事件驱动服务器 | QPS | 2033 req/s (4000并发) | | 事件驱动服务器 | 成功率 | 99.5% | --- ## 🔗 相关链接 - **项目地址**:[您的Git仓库地址] - **技术博客**:[您的博客地址] - **个人网站**:[您的网站地址] --- ## 👥 贡献者 - **吴振龙** - 核心开发者 - **李宗帛** - 数据分析 - **毛若沣** - 后端开发 - **肖汉旭** - 数据处理 --- ## 📄 许可证 本项目仅供学习交流使用。 --- ## 📧 联系方式 如有问题或合作意向,欢迎联系! **最后更新时间**:2025年11月30日