项目简介
本项目是基于C++开发的分布式系统,旨在提供高效、可靠的课程选择服务。借助分布式架构,系统实现了高可用性和负载均衡,能支持多用户并发操作,保证课程选择的实时性与准确性。
项目的主要特性和功能
- 分布式架构:采用包含多个存储服务器和协调者节点的分布式架构,保障数据高可用性与负载均衡。
- 高并发处理:运用事件驱动和多线程技术,支持多用户并发操作,提升系统并发处理能力。
- 实时课程查询:可实时查询课程信息与学生选课情况。
- 选课与退课操作:支持学生进行选课和退课操作,并实时更新课程和学生状态。
- 错误处理与日志管理:具备完善的错误处理机制和日志管理功能,确保系统稳定且可维护。
- HTTP请求处理:通过HTTP协议处理客户端请求,支持GET和POST方法,提供友好的API接口。
安装使用步骤
1. 编译项目
在项目根目录下执行以下命令进行编译:
bash
make
2. 启动存储服务器
在不同终端依次运行以下命令启动存储服务器集群: ```bash ./CS_system --kvconfig_path ./conf/coordinator.conf ./CS_system --kvconfig_path ./conf/coordinator1.conf ./CS_system --kvconfig_path ./conf/coordinator2.conf ./CS_system --kvconfig_path ./conf/coordinator3.conf
./CS_system --kvconfig_path ./conf/tcoordinator.conf ./CS_system --kvconfig_path ./conf/tcoordinator1.conf ./CS_system --kvconfig_path ./conf/tcoordinator2.conf ./CS_system --kvconfig_path ./conf/tcoordinator3.conf ```
3. 启动Web服务器
新建终端,运行以下命令启动Web服务器:
bash
./CS_system --ip 127.0.0.1 --port 8080 --config_path ./conf/store_servers.conf
4. 客户端操作
新建终端,使用以下命令进行客户端操作:
获取课程信息
```bash curl -i -G -d 'id=AR03015' -X GET http://localhost:8080/api/search/course
curl -i -G -d 'all' -X GET http://localhost:8080/api/search/course ```
获取学生选课信息
bash
curl -i -G -d 'id=202208010103' -X GET http://localhost:8080/api/search/student
学生选课与退课
```bash curl -i -d '{"student_id":202208010103,"course_id":AR03015}' -H 'Content-Type: application/json' -X POST http://localhost:8080/api/choose
curl -i -d '{"student_id":202208010101,"course_id":AR03015}' -H 'Content-Type: application/json' -X POST http://localhost:8080/api/drop ```
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】