全文总字数:4395字
1. 研究目的与意义(文献综述)
微服务的概念源于 martin fowler 于 2014 年 3 月 25 日写的一篇文章microservices,微服务架构模式(microservices architecture pattern)的目的是将大型的、复杂的、长期运行的应用程序构建为一组相互配合的服务,每个服务都可以很容易得局部改良。 micro 这个词意味着每个服务都应该足够小,但是,这里的小不能用代码量来比较,而应该是从业务逻辑上比较 —— 符合 srp 原则的才叫微服务。
对于微服务的研究与分析,国内主要以软件设计为主,注重实践,而国外主要以对相关概念的界定以及不同微服务组件之间性能的差异和优化为主。
微服务架构具有以下优势:复杂度可控,在将应用分解的同时,规避了原本复杂度无止境的积累。每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界。由于体积小、复杂度低,每个微服务可由一个小规模开发团队完全掌控,易于保持高可维护性和开发效率。
2. 研究的基本内容与方案
本系统旨在构建一个包含基本企业管理功能的微服务平台。业务代码的构建采用了目前使用最广泛的Java8API,并且完全遵循阿里巴巴编码规范。采用Spring Boot 2、Spring Cloud Hoxton、Mybatis等核心技术,同时提供了基于Vue的前端框架。后端框架中服务注册中心选用Spring Cloud Netflix Eureka,服务调用方式为REST API,服务监控采用Spring Boot Admin,断路器采用Spring Cloud Netflix Hystrix,服务网关为Spring Cloud Netflix Zuul,分布式配置采用Spring Cloud Config,服务跟踪选用Spring Cloud Sleuth,消息总线使用Spring Cloud Bus,数据流则采用Spring Cloud Stream,批量任务选用Spring Cloud Task等等。前端框架的构建选用Vue和Element,用于快速构建网站前端。
相关措施:简单来说,服务化的核心就是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底地去耦合(不再共享 DB、KV,去掉重量级 ESB),并且强调 DevOps 和快速演化。这就要求我们必须采用与一站式时代、泛 SOA 时代不同的技术栈,而 Spring Cloud 就是其中的佼佼者。DevOps 是英文 Development 和 Operations 的合体,他要求开发、测试、运维进行一体化的合作,进行更小、更频繁、更自动化的应用发布,以及围绕应用架构来构建基础设施的架构。这就要求应用充分的内聚,也方便运维和管理。这个理念与微服务理念不谋而合。作为新一代的服务框架,Spring Cloud 提出的口号是开发 “面向云环境的应用程序”,它为微服务架构提供了更加全面的技术支持。
3. 研究计划与安排
2020/2/28—2020/3/13:系统原型设计;
2020/3/14—2020/3/31:系统架构、程序设计与开发;
2020/4/1—2020/4/30:系统测试与完善;
4. 参考文献(12篇以上)
[1]荆诚,王爱军.微服务在煤矿监控类软件开发框架中的应用[j/ol].工矿自动化:1-10[2020-02-23].https://doi.org/10.13272/j.issn.1671-251x.2019070056.
[2]王敏.ddd与核心银行系统微服务架构转型[j].中国金融电脑,2020(02):57-63.
[3]陶志,向忠清.微服务架构service mesh的设计与应用[j].自动化技术与应用,2020,39(01):49-53.
