登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 毕业论文 > 计算机类 > 软件工程 > 正文

基于微服务架构的网络教学辅助平台的设计与实现

 2022-12-21 16:32:46  

论文总字数:27679字

摘 要

随着软件系统业务的发展,单体架构面临着迭代速度慢、成本提高等问题,而微服务架构使用模块化作为服务的单元、同时可以独立的部署和扩展用以帮助优化系统和缓解单体架构所带来的问题。

论文首先研究了微服务的概念以及发展,其次对SpringCloud关键性技术如服务发现与注册技术、分布式配置中心技术和路由网关技术进行研究,接着根据需求拆分服务分别是资源、作业、测试、管理员、登录、任课服务,并将前面学习的技术理念运用到本系统中。

本系统在基于网络教学服务平台的单体架构的前提上,对系统进行重组、重构,分模块的进行开发。最终实现了网络教学服务平台的低耦合、易维护的微服务系统的标准框架,但还需要在用户的体验感和系统性能方面加以改进。

关键词: 微服务;SpringCloud;Eureka;Spring Cloud Config;分布式文件系统

Design and Development of Network Teaching Auxiliary Platform Using Microservice Architecture

Abstract

With the development of the software system business, the monolithic architecture addresses a range of problems of slow iteration speed and increased cost.The microservice architecture uses modularity as a unit of service, and can be independently deployed and expanded to help optimize the system and alleviate the problems caused by the monolithic architecture.

Firstly,this paper studies the concept of microservices and its development, and secondly studies the key technologies of Spring Cloud such as service discovery and registration technology-eureka, distributed configuration center technology-Spring Cloud Config and routing gateway technology-Zuul,then it divides services according to the needs which are resource, homework, test, admin, sso, and teach services and applies the technical concepts learned before to this system.

This system reorganizes and reconstructs the system on the premise of a monolithic architecture based on the ntap, and develops it in sub-modules.Finally, the standard framework of the low-coupling and easy-maintaining microservice system of the network teaching auxiliary platform is realized,but it still needs to be improved in terms of user experience and system performance.

Keywords: Microservice Architecture;SpringCloud;Eureka;Spring Cloud Config;Distributed File System

图目录

图 3-1 教师用况图 7

图 3-2 学生用况图 8

图 3-3 管理员用况图 9

图 4-1 系统功能结构图图 11

图 4-2 系统总架构图 12

图 4-3 网络教学辅助平台E-R图 13

图 4-4 Eureka的UI界面 19

图 4-5 单点登录流程图 21

图 4-6 教师资源顺序图 22

图 4-7 学生资源顺序图 23

图 4-8 教师作业顺序图 24

图 4-9 学生作业顺序图 25

图 4-10 教师测试流程图 26

图 4-11 学生测试列表流程图 26

图 5-1 本地虚拟机的docker容器 28

图 5-2 阿里云服务器的docker容器 28

图 5-3 Gitlab群组 29

图 5-4 maven私服镜像 29

图 5-5 保存Token 30

图 5-6 用户登录页面 31

图 5-7 课程列表代码展示 32

图 5-8 课程展示页面 32

图 5-9 文件上传和下载的关键代码 33

图 5-10 文件上传的前端代码 33

图 5-11 文件上传前端页面 34

图 5-12 题库列表的关键代码 35

图 5-13 作业布置的前端显示 35

图 5-14 在线答题展示代码 36

图 5-15 在线答题前端 36

图 5-16 教师分批次添加的关键代码 37

图 5-17 添加教师前端显示 38

图 5-18 二级缓存存储 41

图 5-19 并发测试的聚合报告 41

表目录

表 4-1 管理员表 13

表 4-2 教师表 14

表 4-3 学生表 14

表 4-4 任课表 14

表 4-5 课程表 15

表 4-6 班级表 15

表 4-7 章节表 15

表 4-8 院表 15

表 4-9 系表 15

表 4-10 资源表 16

表 4-11 作业表 16

表 4-12 答案记录表 16

表 4-13 题库表 17

表 4-14 作业成绩表 17

表 4-15 测试表 17

表 4-16 回答错误表 18

表 4-17 题库表 18

表 4-18 成绩表 18

表 4-19 登录变量 22

表 4-20 服务的端口号 28

表 5-1 运行环境 39

表 5-2 linux运行环境 39

表 5-3 登录测试用例表 39

表 5-4 教师上传资源测试用例表 40

表 5-5 学生下载资源测试用例表 40

表 5-6 教师布置作业的测试用例表 40

表 5-7 学生做作业的测试用例表 41

表 5-8 学生在线答题的测试用例表 41

表 5-9 学生在线答题的测试用例表 41

目录

摘 要 I

Abstract II

图目录 III

表目录 IV

第一章 引言 1

1.1课题背景 1

1.2现状研究 1

1.2.1国外现状研究 1

1.2.2国内现状研究 1

1.3课题的目的及意义 2

1.4 课题主要研究内容及关键问题 2

1.4.1研究内容 2

1.4.2关键问题 2

1.5论文组织结构 3

第二章 相关技术简介 4

2.1微服务 4

2.1.1单体架构 4

2.1.2微服务架构 4

2.2SpringCloud的常用组件 4

2.3本章小结 5

第三章 网络教学服务平台的需求分析 6

3.1功能性需求分析 6

3.2非功能性需求分析 9

3.3本章小结 10

第四章 网络教学服务平台的系统设计 11

4.1概要设计 11

4.1.1系统功能模块结构设计 11

4.1.2系统总体架构设计 11

4.1.3数据库设计 12

4.2详细设计 19

4.2.1配置中心设计 19

4.2.2服务注册与发现设计 19

4.2.3声明式调用设计 20

4.2.4路由网关设计 20

4.2.5网络教学服务平台模块设计 21

4.2.6端口分配 26

4.3本章小结 27

第五章 网络教学辅助平台的实现与测试 28

5.1环境搭建 28

5.2网络教学辅助平台的核心代码和运行界面 30

5.2.1单点登录模块的实现 30

5.2.2任课模块的实现 31

5.2.3资源模块的实现 33

5.2.4作业模块的实现 34

5.2.5测试模块的实现 35

5.2.6管理员模块的实现 36

5.3系统测试 38

5.3.1系统测试环境与工具 38

5.3.2系统功能测试 38

5.3.3系统非功能测试 41

5.4本章小结 41

第六章 总结与展望 42

6.1总结 42

6.2展望 42

致谢 43

参考文献 44

引言

1.1课题背景

对于传统的互联网项目来说,大多数都是将大大小小的系统耦合到一起开发,对于软件的长期发展来说,为了避免单体系统故障的风险,团队间,不同类型的开发人员都需要花费更多的时间去协调和维护。然而在发布周期中发生的变更越多,出现故障的风险就越大,从而降低了产品整体的迭代速度,成本也会越来越高,导致该项目终止。

随着业务场景的复杂化,对系统架构的要求大幅提高,于是微服务这种新型技术的使用场景也变得多了起来。微服务架构是一种模块化开发,它具有方便解耦、持续集成等特点,服务可以独立的部署并且使用不同的技术和硬件。它本质也是一个分布式系统,既能解决传统的单体应用的缺点,又可以满足不断变化的业务需求,实现一个高可用、高并发的系统[2]。

剩余内容已隐藏,请支付后下载全文,论文总字数:27679字

您需要先支付 80元 才能查看全部内容!立即支付

企业微信

Copyright © 2010-2022 毕业论文网 站点地图