基于微服务的遥感数据处理与共享平台设计

2019-09-10 07:22韦二龙党执政李峰王永安
计算机与网络 2019年12期
关键词:架构设计微服务数据共享

韦二龙 党执政 李峰 王永安

摘要:随着遥感技术的快速发展,遥感数据处理与共享应用于越来越多的领域,然而,业务功能的快速增长对遥感数据处理与共享平台的建设带来了新挑战,传统的基于单服务架构的遥感数据处理与共享服务已经无法满足人们对高可用、易扩展服务的需求。提出了基于微服务架构的遥感数据处理与共享平台设计方案,并基于微服务设计理念对平台架构、服务注册发现、服务交互、容错处理、统一配置管理及服务部署等提出了具体的技术解决方案,保证了平台的高可用性和易扩展性,满足当前遥感数据快速增长对数据处理与共享的需求。

关键词:遥感数据;数据处理;数据共享;微服务;架构设计;Docker容器

中图分类号:TP311.52文献标志码:A文章编号:1008-1739(2019)12-56-4

0引言

当前我国遥感数据分散于不同业务部门,通过长期业务沉淀,形成了全国覆盖、要素齐全、精度较高的土地、地矿、海洋资源和地理过程数据,应用于陆地观测、海洋观测、测绘行业、土地行业以及地矿行业等领域[1]。遥感数据处理与共享平台具备多源遥感数据产品的接入处理、可视化、共享和分析能力[2-3],但在遥感数据处理与共享架构设计,特别是结合微服务构建高可用、易扩展服务架构方面,暂时还是空白。

本文探讨了传统遥感数据处理与共享服务的不足,阐述了微服务架构的优势。基于微服务设计理念,提出构建低耦合、高可用、易扩展的遥感数据处理与共享平台设计方案,可支撑遥感数据在信息处理与共享领域的建设,满足遥感数据快速增长对数据处理与共享的需求。

1传统遥感数据处理与共享服务的不足

随着遥感技术的快速发展,遥感数据处理与共享平台需要为越来越多的领域提供支持,传统的遥感数据处理与共享服务基于单服务架构设计,所有功能模块部署在同一服务中,随之暴露出很多问题,主要包含以下3个方面[4]:

(1)服务稳定性差

遥感数据处理与共享平台普遍基于单服务架构搭建,整个服务包含数据接入、处理、统计、分析、传输、共享及展示等多个业务模块,不同业务模块相互关联、依存,共同维持遥感数据处理与共享服务正常运转,任何一个模块出现问题都可能对整个平台造成影响。

(2)可扩展性不足

基于单服务架构的遥感数据处理与共享平台不同的业务模块代码部署在同一服务器中,业务代码之间相互关联、耦合性高。随着数据共享平台的业务发展,对模块的增加和更改都可能影响其他功能模块的功能和稳定,更新和修复服务变得越来越困难。

(3)开发标准不统一

当前遥感数据来源标准不统一,模块开发语言和架构多种多样,导致遥感数据的接入、处理和共享服务没有统一的标准。

2微服务在遥感数据处理与共享平台方面的优势

2.1微服务

微服务架构是当前系统开发领域的热点技术,可解决单体应用部署、配置、维护的复杂性。微服务架构是将一个单体应用拆分为一组微服务的方法,每个服务独立运行并相互协同,服务间采用轻量级的通信机制,所有的微服务共同构建起整个系统[5],易于开发和维护、业务模块技术不受限制、稳定性高、可伸缩性强,充分体现了高内聚、低耦合的软件设计理念。

SpirngCloud是当前微服务主流的开发框架[6],具备开箱即用的特性,可极大提高开发效率。同时SpringCloud基于SpringBoot构建,为微服务架构提供了整套的解决方案。微服务不强行依赖于运行平台,可根据需求部署在本地Server、阿里云及百度云等服务平台。考虑轻量、灵活等方面,微服务通常通过Docker容器进行部署[7]。

2.2微服务在遥感数据处理与共享平台方面的优势

微服务在构建遥感数据处理与共享平台的优势主要包含以下4个方面[8]:

①服务稳定性高。不同服务单独部署,单个微服务故障只对平台的部分功能造成影响,同时基于微服务的快速恢复机制,能有效保证整个平台的稳定性。

②快速部署、按需伸缩。单个服务的修改只需重新部署相应的微服务,不影响平台的整体运行,有效保证服务的可用性。可以根据业务需求,实现细粒度扩展,有效利用计算机硬件和软件资源。

③统一接入标准。开发人员可以根据不同业务模块的特点,合理选择开发语言、框架和数据库等。通过统一的服务调用接口,方便不同来源数据接入。

④易于开发和维护。将整个平台进行业务拆分,单个微服务只关注特定的业务功能,业务逻辑清晰,方便工作人员对服务进行快速开发和维护。

3基于微服务遥感数据处理与共享平台设计

通过平台整体架构设计、平台业务模块拆分和平台架构关键技术详细介绍基于微服务架构的遥感数据处理与共享平台的设计方案。

3.1平台整體架构设计

基于微服务架构的特点,通过将传统的遥感数据处理与共享平台业务进行合理拆分,设计高可用、易扩展以及可伸缩部署的遥感数据处理与共享平台微服务架构[9-11],架构设计如图1所示。

基于微服务设计的遥感数据处理与共享平台架构主要包括应用层、服务层和容器3个部分。应用层主要通过RESTful接口为第三方应用提供统一的调用服务;服务层主要包括拆分后的微服务、网关服务、负载均衡服务、注册发现服务、断路器容错和统一配置管理等模块,共同保证遥感数据处理与共享平台的稳定性;容器层基于Docker服务集群对微服务进行部署,便于微服务的扩展和伸缩。

3.2平台业务模块

基于微服务架构构建遥感数据处理与共享平台必然涉及业务模块拆分,根据传统遥感数据处理与共享平台的业务需求,将平台拆分为数据接入和传输、数据处理、数据统计和分析、数据共享、数据查询和展示以及用户权限管理服务集群。

(1)数据接入和传输

遥感数据信息来源于不同的领域,遵循不同的行业标准,遥感数据处理与共享平台提供统一的接入标准和规范,方便各类遥感数据的接入。传输服务负责数据传输任务的具体执行。

(2)数据处理

数据处理服务包括典型遥感数据算法服务和基于业务驱动的遥感应用生产流程定制服务等。当前主要的遥感处理算法包括辐射校正、几何校正、正射校正、影像融合、目标检测以及地物分类等。在遥感处理算法基础上对已有服务进行组合,设计服务执行次序以及配置服务输入输出参数,形成可以执行的数据生产流程,完成定义的遥感数据生产过程。

(3)数据统计和分析

在遥感数据处理的基础上,可以对数据进行统计和分析,为数据的共享和展示提供依据。

(4)数据共享

在数据共享方面,提供数据主题订阅、数据变更通知和数据下载服务,并提供主题聚类和基于场景和偏好的数据推荐服务,同时研究多样化的遥感信息共享服务模式,提高遥感信息共享服务的效率。

(5)数据查询和展示

基于数据查询服务,构建云+端的遥感数据自适应精准服务,面向各类用户提供多源遥感信息产品的可视化展示、在线交互和精准保障服务。

(6)用户权限管理

实现用户注册、用户信息查询、用户信息管理、用户删除、用户编辑及用户角色分配等功能。

3.3关键技术

基于微服务架构的遥感数据处理与共享平台架构通过注册发现组件、服务交互、容错机制、负载均衡、统一配置管理和Docker集群部署等关键技术共同保证了平台的高可用性和易扩展性。

(1)注册和发现组件

服务的注册和发现组件主要包括服务提供者、服务消费者和服务发现组件。服务在启动时将自己的信息注册到服务发现组件中,服务消费者通过服务注册表获取服务提供者的网络地址进行调用,业务模块的注册信息会随着服务提供者信息的改变自动更新到注册表中,无需人工修改。SpringCloud支持多种服务发现组件,如Zookeeper和Eureka等,注册和发现组件工作原理如图2所示。

(2)服务交互

基于微服务架构的服务交互分为2种:客户端与服务器端交互和平台内部微服务之间交互服务交互结构如图3所示。

客户端与服务器端的交互采用API Gateway方式,API Gateway是介于客户端和服务器端的中间层,所有客户端请求都经过API Gateway与服务器端进行通信。API Gateway封装了服务器端的具体服务细节,提供了标准的API进行调用,减少了客户端与各个微服务之间的交互次数。

平台不同微服务之间使用轻量级的通信机制RESTful API进行通信,服务提供者注册自己的服务接口,服务消费者通过服务发现组件调用服务提供者的服务接口实现微服务之间的通信。

(3)容错机制

遥感数据处理与共享平台各服务之间相互依賴,任一服务发生故障都有可能造成整个系统崩溃。平台采用断路器模式实现强大的容错机制,断路器可以实现快速失败;如果断路器在同一段时间检测到很多类似错误就会强迫该服务的调用快速失败,直接返回错误信息,避免对整个服务造成影响。同时断路器还可以自动诊断服务是否恢复正常,实现微服务的自我修复。

(4)负载均衡

为了保证各个微服务的稳定性,对每个微服务进行分布式部署,平台通过负载均衡机制将服务消费者的请求分摊到多个服务提供者的实例上。平台采用Ribbon负载均衡器实现微服务的负载均衡,并提供轮询、随机、最小连接数及加权等负载均衡算法。负载均衡保证了单个微服务的稳定性,进而保证平台的可用性。

(5)统一配置管理

遥感数据处理与共享平台使用SpringCloud Config统一管理微服务配置,为分布式系统外部化配置提供了服务器和客户端支持。通过统一配置管理可以实现整个平台的集中配置管理,微服务运行期间可以动态对配置进行调整,配置修改后可以自动进行更新,统一配置管理结构如图4所示。

(6)服务部署

基于微服务的特性,遥感数据处理与共享平台将选择Docker部署微服务。Docker是一个开源的容器引擎,将应用程序和依赖的运行环境打包成镜像,实现应用程序和基础设施层有效隔离,可以更快地对服务进行打包、测试和部署[12]。使用Docker可以有效提高平台的可伸缩性,实现服务的快速扩容。

4结束语

本文通过分析传统基于单服务架构的遥感数据处理与共享服务的不足,阐述微服务在构建遥感数据处理与共享平台方面的优势,提出了基于微服务架构的遥感数据处理与共享平台设计方案。整个微服务架构基于注册和发现、服务交互、容错处理、负载均衡、统一配置管理和Docker集群部署等模块,为构建高可用、易扩展的遥感数据处理与共享平台提供技术支持和解决方案。

参考文献

[1]戴芹,刘建波,刘士彬.海量卫星遥感数据共享的关键技术[J].计算机工程,2008(6):283-285.

[2]冯春,郭伟,龙小祥,等.我国遥感数据共享探讨[J].中国科技资源导刊,2010,42(3):66-72.

[3]史园莉,申文明,熊文成,等.遥感数据集群处理作业调度管理系统研究[J].计算机工程与应用,2012,48(25):77-82.

[4]杜圣东,杨燕,滕飞.交通大数据:一种基于微服务的敏捷处理架构设计[J].大数据,2017,3(3):53-67.

[5]王志勃,王麒森,毕艳茹.互联网环境下微服务框架分析与研究[J].信息与电脑(理论版),2017,(22):23-25.

[6]张峰.微服务技术构建大规模web系统的研究[J].科技创新与应用,2017,(22):48-49.

[7]段嘉腾. Docker技术在软件开发过程中的应用研究[J].中小企业管理与科技(中旬刊),2016,(9):152-153.

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

[9]谭一鸣.基于微服务架构的平台化服务框架的设计与实现[D].北京:北京交通大学,2017.

[10]黄小锋,张晶.微服务框架介绍与实现[J].电脑与信息技术, 2016,24(6):14-16.

[11]欧阳荣彬,王倩宜,龙新征.基于微服务的数据服务框架设计[J].华中科技大学学报(自然科学版),2016,(S1):143-147.

[12]高贤康.浅析Docker技术在Web服务系统中的应用[J].电脑迷,2017,(6):55.

猜你喜欢
架构设计微服务数据共享
微信公众平台在医院图书馆的应用现状调查
科学大数据的发展态势及建议
基于微信企业号的校园移动服务
数字化迎新系统宿舍分配模块的设计与实现
从单一模式系统架构往微服务架构迁移转化技术研究
基于智能终端的照护保险服务管理系统的架构设计
贵州大数据产业发展战略理解和实施建议
健康无忧网
基于心电远程会诊平台实现医疗资源共享