您现在的位置: 新晨范文网 >> 设计论文 >> 系统设计论文 >> 正文

浅谈微服务架构下的系统设计应用

2019/09/06 阅读:

【关键词】微服务;异构性;扩展性;信息系统

1引言

随着云计算、大数据、互联网的发展和普及,企业的应用系统的规模越来越大,越来越复杂,给系统的设计开发、运行维护等带来了巨大的挑战。因此,为了提高应用系统的开发效率和维护便捷性,提出了微服务架构思想。基于微服务架构技术,能有效解决大型软件单体架构带来的研发周期长的问题,能够快速响应用户需求。

2基于微服务架构的系统设计优势

基于微服务架构的软件信息系统可以按照每一个逻辑业务功能进行原子化划分,构建一个逻辑独立的应用软件系统,提高每一个模块的操作执行效率,可以解决复杂问题,同时还可以节约硬件资源。在功能模块化、微服务化的情况下还可以提高处理效率,解决编码过于复杂的问题,改善编码的应用效果。在传统的应用系统设计过程中,人们需要选择不同类型的技术,但是在微服务架构下,其可以利用中心化的组织架构,不需要过度重视某一个重点,这样就可以根据应用服务范围不同确定技术种类,实现一对一的技术性服务,提高系统运行与处理效率。本文通过总结发现,基于微服务架构的系统设计具有很多优势,比如服务技术异构性、服务的扩展性和部署简单化。

2.1服务技术异构性

微服务架构的每个服务不是必须采用一致的语言或技术,可以选择一个适合的开发技术和程序设计语言,因此一个团队可以根据情况选择最熟悉的技术,这样就可以更好地支撑当前的应用软件。

2.2服务的扩展性

目前,一个软件系统的功能非常多,同时随着系统运行和使用,未来还需要添加更多的服务功能。传统的系统架构可扩展性比较弱,基于微服务架构的系统则可以提升扩展性,每一个系统模块都拥有独立性,因此就可以单独进行扩展,不需要涉及其他的功能模块和底层架构,这样就可以提高系统的服务能力。

2.3简化部署

基于微服务架构的系统可以针对服务功能进行单独处理,自顶向下针对系统的功能服务进行划分,每一个服务都属于一个单独的模块,各个模块之间是逻辑独立的,因此每一个服务的部署都是单独的,这样就可以有效简化系统部署工作。在传统的系统部署过程中,一旦某一个功能模块发生故障或问题,就会导致系统整体无法部署,采用微服务架构开发的系统则可以只关注出问题的模块,这样就可以提高整个系统的部署效率。

3基于SpringCloud微服务架构的设计与开发

SpringCloud是近几年开始流行的微服务框架,它利用SpringBoot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用SpringBoot的开发风格做到一键启动和部署。SpringCloud是一个应用非常广泛的组件,能够为软件开发带来较多的技术支持,可以在微服务应用架构设计中提供标准框架,以便能够实现以微服务为架构的基础程序代码。基于SpringCloud微服务架构的应用系统设计过程中,首先需要创建一个SpringCloud配置服务器,创建一个Java程序开发框架,在SpringBoot基础上进行系统构建,然后软件设计师就可以激活这个应用服务功能,同时可以继续地配置服务器,完善系统服务的访问路径。其次,系统设计与开发还可以利用微服务注册技术,注册完毕之后就可以发现系统中的功能模块,实现系统的集成和通讯传输,自动化的注册可以提高微服务架构软件的灵活性和部署简洁性。最后在用户交互界面方面,使用AngularJS组件绑定数据模型和页面变量,完成完整微服务的开发和创建。

4基于SpringCloud微服务架构在物流信息系统中的应用研究

随着近些年物流业的快速发展对信息系统提出了更高的要求,需求变化频度不断提高,传统大型项目的单体式开发模式已经不太适应快速的变化,需要更灵活的架构模式。因此在企业的实践中引入了微服务架构模式来应对。微服务架构中服务的分割也是需要重点考量的问题。虽然服务的划分能够使得系统更灵活,但是太细粒度的分割也会使得系统的服务和服务之间的交互变得错综复杂,难以管理。因此在构建物流系统是采用了模块级别的服务划分,数量大约在20个左右的水平,主要划分为基础服务、订单服务、产品服务、运价服务、供应商管理服务、报表服务等等。这样的设计模式既能够发挥微服务的优势也能够保持系统的易维护性。具体的应用架构如图1所示。该应用平台采用了6层架构来实现,即客户端,网关层,微服层,业务层,资源存取层和资源层,并进行了一定拓展。具体说明如下:

4.1客户端

提供Web应用和GUI应用给最终用户使用。Web客户端和GUI客户端采用Http/Https协议和网关层通信。

4.2网关层

为外部提供统一的网关接口,以及路由,安全控制等功能。

4.3微服层

微服务层为所有的微服务统一提供一个注册发现中心,并配合网关层对外开放API接口。每个微服务实现一套独立的功能,并且可以独自部署,横向扩展。

4.4业务逻辑层

业务逻辑层是整个统一信息管理系统的核心模块,实现所有的业务逻辑。本层主要包括3种组件,即:(1)业务Biz提供统一的业务服务调用,包括提供给服务层调用。(2)业务组件对象封装一个业务功能。(3)业务对象封装业务模型数据。

4.5资源存取层

封装和外部资源的通信。主要提供3种类型的集成,即:(1)数据集成,封装数据访问,例如数据库和文件访问;(2)消息集成,封装和消息中间件的通信,如MQ等;(3)应用集成,封装和外部系统的交互。

4.6资源层

系统的外部资源。对于集成层,同时具有3种类型的资源:数据源资源、消息资源、应用资源。

4.7基础服务

对微服务层,业务逻辑层,资源存取层提供公共的服务,主要包括缓存服务,传输对象,文件日志,数据库日志,权限管理,事务管理,任务调度模块等。4.8Spring容器管理业务逻辑层、集成层、基础服务都在Spring的容器管理中。Spring提供依赖注入和控制反转等功能。基于以上应用架构搭建的物流信息系统经过实践证明,达到良好的性能指标。开发人员更加专注于业务模块的开发,系统架构师负责总体协调微服务的运维,使得系统开发效率更高,能应对快速变化的业务需求。

5结束语

微服务架构能有效提升应用系统处理复杂事物的能力,通过高内聚和低耦合手段简化系统的设计。基于微服务的模块具有较高的自治性,可以按照独立实体模式存在和运行。SpringCloud是非常优秀的微服务架构体系,在实践中有广泛的应用,基于SpringCloud微服务架构搭建物流信息系统,经过实践证明,能够快速适应需求的变化,达到设计初衷,具备一定的实践价值。

参考文献

[1]洪华军,吴建波,冷文浩.一种基于微服务架构的业务系统设计与实现[J].计算机与数字工程,2018,46(1):149-154.

[2]李春阳,刘迪,崔蔚,等.基于微服务架构的统一应用开发平台[J].计算机系统应用,2017,26(04):45-50.

[3]向彬彬,马明星,童茂林,等.基于微服务架构的分布式测距系统的研究与设计[J].计算机应用与软件,2018,35(5):95-100.

作者:郑冰 单位:中远海运集装箱运输有限公司

浅谈微服务架构下的系统设计应用

2019/09/06 阅读:

推荐度:

免费复制文章