# VPHLSystemBackend **Repository Path**: joker423/vphlsystem-backend ## Basic Information - **Project Name**: VPHLSystemBackend - **Description**: 虚拟宠物医院学习系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-03-03 - **Last Updated**: 2024-12-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, Docker, SpringCloud, MongoDB, Redis ## README # VPHLSystemBackend --- ## 介绍 虚拟宠物医院学习系统后端 ![img.png](img/img.png) --- ## 软件架构 ### 架构图 ![whiteboard_exported_image (1).png](img/img2.png) ### 微服务设计 - 系统服务`system-service` - 考试服务`exam-service` - 数据服务`data-service` - 网关服务`gateway`地址`123.60.184.136:10010` #### 服务注册与发现 Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 `nacos`地址:`1.116.1.85:8848/nacos` ![img_1.png](img/nacos.png) ### 数据库设计 非关系型数据库`MongoDB`是一个基于分布式文件存储的数据库 服务地址:`1.116.1.85:27017` ![database.png](img/database.png) ### 高性能设计 - 缓存`redis` - 负载均衡`ribbon` + 负载均衡规则:RoundRobinRule(轮询策略):按照顺序选择server ### 可扩展性设计 - 微服务`SpringCloud` + 将原来的单体应用按义务范围来进行划分,划分为多个小model,每个微服务运行在自己的进程中,不相互影响 + 在新增需求时,能够实现快速开发 - 容器`docker` + 持续部署、版本控制、可移植性、隔离性和安全性 - devops + 通过开发人员与运维人员的密切交流实现一个完整的、反馈及时的流程。通过 DevOps,用户可以得到持续的价值,包括产品的设计、开发、测试、部署、运维、优化等。 ### 文件管理 - 服务器存储 - 百度文件存储系统`BOS` --- ## 部署方式 在父项目下执行 ```bash mvn clean package -DskipTests -f pom.xml ``` 在`out`目录下分别生成`jar`包 ,将`jar`包拷贝到服务器目录下 编写Dockerfile 以dataservice为例 ```dockerfile FROM openjdk:8-jre COPY ./vphl-dataservice.jar /tmp/vphl-dataservice.jar ENTRYPOINT java -jar /tmp/vphl-dataservice.jar ``` 以下两种方式均可: 1.对每个微服务,进入`Dockerfile`所在目录 ```bash docker build -t systemservice:1.0 . docker run --name systemservice -p 8092:8092 -d systemservice:1.0 ``` 2. docker-compose一键编排 编写docker-compose.yml ```yaml version: "3" services: dataservice: build: ./dataservice examservice: build: ./examservice systemservice: build: ./systemservice gateway: build: ./gateway ports: - "10010:10010" ``` 一键编排 ```bash docker-compose up -d ``` --- ## 测试方案 - 单元测试`Junit` - 接口测试`Postman`+`Apifox` + 后端接口数50 - 集成测试`allur`+`pytest` - 性能测试`Locust` + 服务实例数=1 ![img2.png](img/img_2.png) + 服务实例数=3 + --- ## 文档地址 1.[项目需求](https://kqeun0wbes.feishu.cn/docx/XRLKdafDIomFVcxLdaGcaLZKnYe) 2.[项目计划](https://dcdffu8gcj.feishu.cn/docx/WQ8GdvHLDoLJMhxiP34cDYT3npg) 3.[接口文档](https://www.apifox.cn/apidoc/shared-46a98036-c379-4153-bd92-6410a81d204d) 4.[功能测试计划文档](https://dcdffu8gcj.feishu.cn/docx/BZXSdhvhrolol0xsXP0clMWunkb) 5.[后台测试用例设计](https://dcdffu8gcj.feishu.cn/base/JNK0bDQPLaJwEGs5jLEcPoFonRe?table=blk4vftk2t9C2oqX) 6.[软件架构设计说明书](https://kqeun0wbes.feishu.cn/docx/M8R1da2tqopgHcxwBYuchT58nXe) 7.[部署文档](https://kqeun0wbes.feishu.cn/docx/KM2LdP4wKobm50xGFWecmFtDnpc) 8.[集成测试报告](https://dcdffu8gcj.feishu.cn/docx/EW3YdnEXgooF7gxZqiTcoTHnnlW) 9.[项目演示ppt](项目展示_G11.pptx) --- ## 前端项目地址 AnimalHospitalTeach:https://github.com/EchoseChen/AnimalHospitalTeach 系统访问地址:http://121.43.224.58 (可能已经无了) --- ## 系统最大的问题 `MongoDB`是单体部署,吞吐量有限,大量请求时可能宕机,是系统的性能瓶颈。