基于微服务架构的系统设计与开发毕业论文
2021-11-22 21:58:13
论文总字数:21127字
摘 要
随着互联网的快速发展,传统的企业级应用已经变得越来越臃肿和庞大,这时企业级单体应用的难点以及痛点已经成为了很多企业的困扰,其中包括诸如部署成本高、改动影响大,风险高、部署频率低导致项目交付客户速度慢等等问题。这些单体应用中显著存在的问题导致了软件开发人员们迫切的想要找到一种新的软件架构方式来解决这些问题,近几年活跃在各大技术社区的名为“微服务”的软件构架方式正是软件开发人员们最热衷的解决方案。
本文通过企业应用中最常见的企业管理系统为切入点,对微服务这种软件架构方式进行尝试。首先通过了解相关技术以及流行框架进行技术选定,后端技术主要采用目前Java中最流行的Spring框架,前端方面则采用Vue,然后进行需求分析,通过对企业管理平台的业务需求进行分析后,我大致将其分为七个相对独立的模块并通过maven进行依赖管理,这七个模块分别为服务注册与发现模块、统一配置中心模块、全局路由管理模块、授权服务中心模块、系统基本功能模块、OSS对象存储服务模块、工作流事务处理模块。最后根据需求开始研发项目。
最终,项目成功以微服务的架构方式完成开发,并且实现了基本的企业管理系统的功能。在项目的实际开发过程就可以逐渐发现微服务架构的优点,开发新的模块时无需更改之前开发好的模块,可以达到各模块之间独立部署的目的,这意味着开发过程中可以大大减少项目的部署次数。本文研究结果表明微服务这种架构方式对于开发人员来说非常友好,它不仅大大减少了开发人员的重复的工作,而且还有效地提升了开发人员的工作效率,同时项目本身也有着更广阔的提升和维护空间,非常适合企业级应用的开发。
关键词:单体应用;微服务;企业管理平台
Abstract
With the rapid development of the Internet, the traditional enterprise-class applications have become more and more bloated and large, when the difficulties and pain points of enterprise-class monomer applications have become a problem for many enterprises, including such as high deployment costs, high impact of changes, high risk, low deployment frequency leading to slow project delivery customers and so on. Significant problems in these monomer applications have led software developers to find a new way to solve these problems, and in recent years software architectures called "microservices", which have been active in major technology communities, are the solutions that software developers are most passionate about.
This paper tries the software architecture of microservices through the most common enterprise management system in enterprise applications as the entry point. First of all, through understanding the relevant technology and popular framework for technology selection, back-end technology mainly uses the current Java in the most popular Spring framework, the front-end side is using Vue, and then the requirements analysis, through the enterprise management platform business needs analysis, I roughly divided it into seven relatively independent modules and through maven dependency management, these seven modules are service registration and discovery module, unified configuration center module, global routing management module, authorized service center module System basic function module, OSS object storage service module, workflow transaction processing module.
In the end, the project was successfully developed in an architectural manner of microservices and implemented the functionality of the basic enterprise management system. The benefits of the microservices architecture can be gradually discovered during the actual development process of the project, and the development of new modules without changing the previously developed modules can be achieved for the purpose of independent deployment between modules, which means that the number of deployments of the project can be significantly reduced during the development process. The results of this paper show that microservices is a very friendly architectural approach to developers, which not only greatly reduces the duplication of work of developers, but also effectively improves the efficiency of developers, while the project itself has a broader space for improvement and maintenance, which is very suitable for the development of enterprise-class applications.
Key Words: Monomer application; Microservice; OEMP
目录
第1章 绪论 1
1.1 研究背景 1
1.2 研究内容 1
1.3 研究目标 2
第2章 技术基础 3
2.1 SpringBoot轻量级框架 3
2.1.1 什么是Spring Boot 3
2.1.2 Spring Boot的特点 3
2.2 SpringCloud框架集合 3
2.2.1 什么是Spring Cloud 3
2.2.2 Spring Cloud的特点 3
2.3 Vue渐进式框架 4
2.3.1 什么是Vue 4
2.3.2 Vue的特点 4
2.4 MyBatis-Plus增强工具 4
2.4.1 什么是MyBatis-Plus 4
2.4.2 MyBatis-Plus的特点 4
第3章 系统需求分析以及架构设计 5
3.1 系统整体设计概要 5
3.2 后端需求分析以及功能设计 5
3.2.1 服务注册与发现中心Eureka 5
3.2.2 服务调用与负载均衡与熔断器 5
3.2.3 动态路由与负载均衡 5
3.2.4 Oauth2授权服务中心 6
3.2.5 实际业务功能模块 6
3.3 前端需求分析以及功能设计 6
3.3.1 基于Vuetify的页面构建 6
3.3.2 Vue-i18n国际化 6
3.3.3 vue-router前端路由 6
3.3.4 axios构建HTTP请求 7
3.4 系统架构小结 7
第4章 系统架构设计具体实现 8
4.1 微服务基础模块的开发 8
4.1.1 服务注册中心Eureka Server的分析与开发 8
4.1.2 授权服务中心OAuth2.0 Server的分析与开发 8
4.1.3 后端路由Zuul模块的开发 8
4.2 系统基础业务模块的开发 9
4.2.1 基础业务模块开发(基于MyBatis-Plus) 9
4.2.2 MinIO对象存储服务的开发 9
4.2.3 Flowable工作流服务开发 9
4.3 前端工程的开发 10
4.3.1 Vue CLI 10
4.3.2 为前端工程whut添加必要的依赖 10
4.3.3 基于vuetify开发前端工程主要页面 10
4.3.4 基于Vue-i18n构建项目国际化 10
4.3.5 基于Vue-router构建前端路由 10
4.3.6 基于vue-axios和axios的网络请求 11
4.4 系统实际开发小结 11
第5章 系统功能测试 12
5.1 系统基础业务模块的测试 12
5.1.1 基础系统业务模块测试 12
5.1.2 Oss对象存储服务模块测试 13
5.1.3 Flowable工作流模块测试 13
5.2 微服务基础模块的测试 14
5.2.1 服务注册中心测试 14
5.2.2 授权服务中心测试 15
5.2.3 后端路由模块测试 16
5.3 前端系统的测试 17
5.4 系统功能测试小结 19
第6章 系统设计总结 20
6.1 整体总结 20
6.2 展望未来 20
参考文献 21
致 谢 22
第1章 绪论
1.1 研究背景
以往传统的企业级应用开发主要包含三个部分:展示给用户使用的界面、在服务器上运行的后端应用、以及用于存储数据的数据库(通常为关系型数据库)。这三个功能各异的模块被整合在一起,其中Web应用方面比较出名的就是传统的MVC结构,网页渲染的功能都交给了后端应用,前端代码直接通过浏览器解析将界面呈现给用户。这样对于用户来说并没有什么问题,因为通常浏览器性能相当强大,解析页面较为快速,主要花费时间的在于后端渲染页面的过程。然而,在将前端JS、HTML、CSS等代码和后端代码混合在一起仍然引起了很多问题,比如开发不便、前后端合作苦难、以及最主要的构建部署变得异常复杂,这种复杂在于传统企业级应用作为一个整体,任何改变都将导致整个版本的更新迭代,这就与企业级应用频繁的交付产生了强烈的冲突,开发人员们因此苦不堪言。
基于Unix设计哲学,构建小型的、功能单一的应用程序模块的策略在软件开发中流行了起来,这种设计模式往往被称呼为“微服务”。微服务意味着将整个软件系统分为若干个可以独立部署的服务(单个应用程序),主要体现了一种去中心化控制的思想。通过微服务提供的稳固的模块之间的边界,服务之间的依赖性大大减少,从而达到即使是不用的编程语言也能在整个微服务系统中合作的效果。
1.2 研究内容
本文主要致力于研究前后端分离的微服务架构的企业管理平台,对于每一家企业而言,一个合理规范的企业管理平台是不可或缺的,与此同时,随时企业业务的扩展以及人员的更替,需求一直都在发生变化,对于单体应用而言,这无疑是灾难,频繁的版本迭代正如研究背景所提到会使得其难以维持一个良好的模块化结构,而这正是企业管理平台能保持迭代开发的关键。然而这些对于微服务来说都不是问题,精心设计的模块被独立的部署和扩展,为以后的版本迭代做好了准备。
请支付后下载全文,论文总字数:21127字