APP下载

一种基于微服务架构的数据质量评价系统的设计与实现

2022-11-29刘书志刘晓雷李静静

电脑知识与技术 2022年29期
关键词:电波电离层架构

刘书志,刘晓雷,李静静

(中国电波传播研究所,山东 青岛 266107)

1 引言

电波环境数据质量评价系统是对各类电波观测数据进行实时监控、查询统计、质量评价等功能的业务系统,处理的数据种类繁多,数据量巨大,从数据内容上分,主要包括电离层垂直探测数据、电离层斜向探测数据、电离层闪烁和TEC,对流层温湿压、降雨衰减等数据等;从数据形式上分,主要包括文件数据和结构数据。每类数据评价机制和方法都不相同,随着电波观测手段的进步和发展,数据种类逐渐增多,评价维度也从完整性、时效性和准确性三个维度,变成了完整性、时效性、一致性和准确性四个维度。原有的系统采用单体设计,系统变得日益臃肿和庞大,每类数据的评价方法的改进,都会影响整个系统,运维变得困难,且该系统的效率变得低下。

针对当前数据质量评价系统的特点,引入微服务架构,以数据为基础,以服务为中心,将系统中的不同功能模块拆分成多个不同的服务,这些服务都能够独立部署和扩展[1],实现不同类别的数据质量评价服务独立运行,各类数据评价方法的改进不再依赖其他数据的微服务;同时,对文件数据和结构化数据的质量评价的共性需求设计相应的微服务。各微服务以轻量通信的方式来进行协作,以便实现集中式的服务管理[2]。

2 微服务原理

2.1 微服务架构定义

微服务[3]是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP协议的RESTful API进行通信协作。被拆分成的每一个小型服务都围绕着系统中的某一项或一些耦合度较高的业务功能进行构建,并且每个服务都维护着自身的数据存储、业务开发、自动化测试以及独立部署机制。由于有了轻量级的通信协作基础,所以各个服务可以使用不同的语言和技术来实现。

2.2 微服务架构的优势

微服务因为其针对性的设计理念,具有众多优势:

1)服务组件化

在微服务架构中,会对服务进行组件化分解,使服务成为一个可以独立更换和升级的单元[3-5],不同的服务通过HTTP等通信协议进行协作,而不是像传统组件那样以嵌入的方式协同工作。每一个服务都以独立开发、部署,可以有效避免一个服务的修改引起整个系统的重新部署。

2)技术异构化

在实施服务架构时,通过采用轻量级的契约定义接口,使得服务本身依赖的具体技术平台不再那么敏感,整个微服务架构系统中的各个组件就能针对其不同的业务特点选择不同的技术平台,允许技术异构性[7]。

3)高容错性

在微服务架构中,由于服务都运行在独立的进程中,所以某一服务发生故障时,故障会被隔离在单个服务中,不会像单体架构中发生的进程内扩散等风险,从而不会影响整个系统[8]。

4)高可扩展性

由于微服务采用松散的HTTP协议或轻量级消息总线方式传递消息,当系统需要新增服务功能时,只需发布新的服务上线即可,不会影响其他微服务的正常运行。并且,高扩展性能更好地支持资源动态分配[9]。

5)高可维护性

微服务的小规模有助于提高代码的可理解性和可维护性[10]。当需要对微服务进行升级时,只需要对该服务进行改造、编译和重新部署即可,不影响其他服务。

2.3 主流的微服务实现框架

微服务作为一种架构设计风格,工程界已经出现若干微服务架构的实现框架,比较主流的有Dubbo[11]、Motan[12-13]、gRPC[14]和SpringCloud[15-16]等。

其中,Dubbo、Motan和gRPC属于RPC(Remote Procedure Call)型微服务框架,这类框架可以像调用本地服务一样调用远程服务,从实现高效可靠的网络透明传输。Spring Cloud本质上是一种RESTful的微服务框架,设计时从资源的角度对系统进行拆分并为每个资源设置特定的URI[17]。与其他微服务框架相比,Spring Cloud是一个解决微服务架构实施的综合性解决框架[1],它整合了诸多被广泛实践和证明过的框架作为实施的基础部件,优在该体系基础上创建了一些非常优秀的边缘组件。Spring Cloud因其功能全面,开源社区活跃,部署简单而成为最为流行的微服务框架,本文将采用该框架实现系统设计。

3 基于微服务的系统设计

针对当前电波环境数据质量评价系统过于臃肿庞大,难以维护且扩展困难,采用微服务架构对其进行重新设计。

电波环境数据质量评价系统处理的数据种类包括各类电波观测数据的主要包括电离层垂直探测数据、电离层斜向探测数据、电离层闪烁和TEC等,每类数据包含文件数据、结构化数据两种形态,对文件数据评价维度包括完整性、时效性,并且具备实时监视的功能;对结构化数据的评价纬度包括完整性、一致性和准确性。系统涵盖了四个功能模块:实时监视、查询统计、质量评价和用户管理功能。系统的用户分为两类:中心用户和观测站用户,中心用户具有所有数据的质量评价权限,观测站用户只具备对自身观测站的质量评价权限。每类数据都有独立的质量信息库,每类数据的质量评价方法都有自身的特点,同时它们也有共性的功能需求:电波环境观测数据库访问和用户访问权限控制。

数据质量评价系统相较于其他业务系统而言,业务的服务复杂性更多的是由于数据种类的复杂和数据体量的巨大,每类数据的评价方法依据数据自身的特点各有不同,同时,新类型的数据不断增加,其对应的评价方法呈现出自身独有的特征。基于这种考虑,按照数据种类进行系统的微服务设计,这样既能充分发挥微服务的优势,又能避免因为数据库的切分造成的数据不一致。因此,数据质量评价系统采用微服务架构设计是十分合适和有效的。

3.1 微服务划分

根据电波环境质量评价系统的实际情况,将微服务分为共享微服务和独有微服务两种。共享微服务为各类数据提供共性功能需求,独有微服务提供各类数据提供自身独特的数据质量评价功能。表1列出了系统的部分微服务。

表1 部分微服务

3.2 系统微服务结构设计

电波环境数据质量评价系统微服务总体结构设计[2]如图1所示。

图1 系统微服务应用总体架构

系统总体架构由SpringCloud核心组件和微服务组成。通过Zuul提供智能路由、访问过滤等功能,统一向前端服务提供RESTful API。Ribbon提供客户端负载均衡的功能;RabbitMQ提供消息总线服务,实现微服务和SpringCloud的消息通信功能;Hystrix提供熔断功能,避免单个微服务故障引起的风险蔓延;Eure⁃ka作为服务注册中心,提供服务注册与发现功能。

每类数据的质量评价功能作为独有微服务,共性微服务为各微服务提供共性功能,各类服务均注册到Eureka,由负载均衡和路由向外提供统一的服务接口,每一个微服务均含有独立的数据库。

3.3 系统功能结构设计

电波环境数据质量评价系统由前端展示平台、后台微服务系统和电波环境数据库组成,用户访问前端平台,前端平台通过RESTful API调用对应的后台微服务,满足用户功能需求。系统功能架构如图2所示。

图2 系统功能结构图

系统前台系统包括实时监视、查询统计、质量评价和用户服务四个功能模块组成。实时监视和查询统计提供电波环境文件数据的完整性和时效性评价功能;质量评价功能模块提供电波环境结构数据的完整性、一致性和准确性评价功能;用户服务提供用户身份验证和权限管理功能。用户通过验证并登录系统后,由前台调用后台微服务,实现数据的评价功能。

系统后台系统由微服务集群和数据库系统组成。微服务集群包括独有微服务和共性微服务。独有微服务按照数据形式又分为文件数据微服务和结构数据微服务,文件数据微服务提供文件数据(电离层垂测文件数据、电离层斜测文件数据、L频段电离层闪烁文件数据、U频段电离层闪烁文件数据和TEC文件数据等)的质量评价服务功能;结构数据微服务提供结构数据(电离层垂测结构数据、电离层斜测结构数据、L频段电离层闪烁结构数据、U频段电离层闪烁结构数据和TEC结构数据等)的质量评价功能。共性微服务作为基础服务供其他微服务调用,包括电波环境数据库访问和用户权限管理。电波环境观测数据库作为外部数据源,是质量评价系统的数据来源和评价对象,由数据访问微服务读取数据供数据评价微服务调用。除了数据访问微服务,其他微服务均维护着自己独有的数据库,保证了数据库的访问效率,不会出现数据库过快臃肿的现象,同时,考虑到各类数据质量评价的独特性,数据库的切分不会产生数据不一致的问题。

4 基于微服务的系统实现

电波环境数据质量评价系统为用户提供实时监视、查询统计、质量评价功能,用户的权限管理由用户管理微服务实现,用户登录系统后即可使用系统提供的服务。

4.1 实时监视功能实现

系统的实时监视功能由前台服务调用后台文件数据微服务的时效性评估功能实现,效果如图3所示。

图3 实时监视功能界面

4.2 查询统计功能实现

系统的查询统计功能由前台服务调用后台文件数据微服务的完整性评估功能实现,效果如图4所示。

图4 查询统计功能界面

4.3 质量评价功能实现

系统的质量评价功能由前台服务调用后台结构数据微服务实现,效果如图5所示。

图5 质量评价功能界面

5 结束语

本文设计并实现了一种基于微服务架构的数据质量评价系统,按照数据种类进行微服务划分,实现了各类数据的质量评价功能以独立的微服务提供,有效解决了该系统数据种类繁多、业务复杂的问题,使得该系统具备服务组件化、技术异构化、高容错性高、可扩展性和高可维护性等优点,并且,由于数据质量评价系统本身具备数据各异性,能有效地避免因为数据库切分带来的数据不一致的问题,为后续该系统的运行维护和业务扩展提供了有力支撑。该设计方案为数据质量评价类系统提供了一种有效的解决途径。

猜你喜欢

电波电离层架构
基于FPGA的RNN硬件加速架构
永远的红色电波
一种电离层TEC格点预测模型
The Speed of Light
Kalman滤波估算电离层延迟的一种优化方法
功能架构在电子电气架构开发中的应用和实践
瞌睡电波
LSN DCI EVPN VxLAN组网架构研究及实现
“电波卫士”在行动
电离层对中高轨SAR影响机理研究