APP下载

基于微服务的生物与环境大数据平台建设

2020-02-05张成梅黄伟郝淼于杰杨冰王雅洁

电子技术与软件工程 2020年7期
关键词:架构数据库生物

张成梅 黄伟 郝淼 于杰 杨冰 王雅洁*

(1.贵州省分析测试研究院 贵州省贵阳市 550000)

(2.贵州省食品安全检测应用工程技术研究中心有限公司 贵州省贵阳市 550009)

生物生态监测,即对生物生态、环境的各项指标进行监测和预报,是生态环境领域的重点任务,也是维持生态系统稳定的基础性工作。进入新时期,生物生态监测面临着现代化技术的冲击,逐渐覆盖了生物生态信息管理和辅助进行分析决策的工作。对生物生态资源与环境参数发生状况的及时监测、上报和决策指导关系到生物生态危机能否得到及时防治,也关系到生态系统的稳定性是否得到足够的保障。当前,互联网、大数据和云计算等信息技术的飞速发展,迫使生物生态信息管理系统的开发技术不断进行创新,因此,本文基于微服务架构这种简单、可独立部署的服务套件开发方式来构建基于微服务的生物与环境大数据平台,以期为生物多样性保护、生态圈的稳定发展提供信息时代的技术支持。

1 理论基础

1.1 微服务架构

1.1.1 微服务架构的概念及特点

微服务架构是一种软件研发架构理念,也可以称为一种架构风格,该架构是将复杂软件应用程序拆分为多个较为简单、可独立部署的服务套件的特定方法。旨在将统一的功能模块分解到多个相对分散的服务,从而实现有效解耦。其中每个小型的服务都会在各自的进程中运行,运用轻量级的通信机制进行通信,例如 HTTP 或 API[1]。每个服务都是围绕业务功能进行构建,可完全通过自动化机制进行独立部署,并且可以使用不同开发语言编写,以及使用不同的数据库存储技术进行数据持久化,服务集中化管理非常少[2-3]。与传统的整体式软件架构相比,微服务架构具有以下优势:

(1)复杂度可控。由于微服务架构将传统整体式架构业务系统拆分为多个服务进行独立开发,有效缓解了传统整体架构需求无限扩大导致复杂度无限积累的难题;

(2)可独立部署。在微服务架构中,服务既可以独立运行,又可以独立部署,当一个服务发生故障或者有新需求进行修改时,只需停止相应服务即可;

(3)技术栈灵活。微服务架构采用去中心化治理技术,每个服务都可以由不同团队独立开发,使得不同团队可以结合具体功能业务选择更适合的技术路线和数据库类型;

(4)有容错机制。微服务架构中不同服务在各自独立的进程中运行,当某一服务发生错误时,可以采取重试或平稳退化相应方法使其他服务有效避免应用层面错误发生,实现容错机制。

1.1.2 Spring Boot

图1:Spring Cloud 相关组件架构

Pivotal 团队基于企业级框架 Spring 高度集成研发出 Spring Boot 框架。该框架秉承“约定大于配置”的思想,旨在简化研发人员创建产品级 Spring 应用和服务的过程。其内部默认配置了很多框架使用方式,例如在 Spring Boot 框架中,可以建立独立的 Spring 应用程序,内嵌 Tomcat、Jetty 以及 Undertow 等诸多 Web 容器,可以在不做部署情况下让项目直接运行起来,简化了XML 文件和 Maven 的繁琐配置。拥有丰富的开箱即用的微服务功能,为研发人员初始搭建以及开发过程中的样板化配置提供简单、快捷的应用方案,使其能够快速搭建生产环境,并可以和 Spring Cloud 联合部署[4-6]。Spring Cloud 组件架构如图1 所示。

1.2 HADOOP 框架

Hadoop 框架是 Apache 下的分布式系统架构项目,包括了一系列大数据技术工具,共同构成了 Hadoop 生态圈,主要有 HDFS、MapReduce、Yarn、HBase、Flume、Sqoop、Hive、Mahout 等。这里重点介绍本文应用中最为重要的 HBase。

HBase 是一个高可靠、高性能、面向列、可扩展的分布式存储系统。同时,HBase 也是一种分布式数据库解决方案,其可通过大量廉价的机器来解决大量数据的高速存储和读取。HBase 可以实现大容量存储,其扩展非常容易,只需要横向添加 DataNode 的机器就可以实现扩展存储容量[7]。与传统数据库不同的是,HBase 采用列式存储,其原理如图2 所示。

2 基于微服务的生物与环境大数据平台数据处理流程设计

2.1 生物与环境数据来源分析

表1:基于微服务的生物与环境大数据平台数据来源及数据类型

图2:HBase 原理示意图

图3:基于微服务的生物与环境大数据平台应用场景

基于微服务的生物与环境大数据平台的数据来源包括政府观监测的数据、企业观监测的数据以及开放数据三部分,如表1 所示。

对于政府观监测数据,通过与政府合作并提供服务的方式合理利用政府脱敏的观监测数据以及观监测设施,主要包括观测站、雷达、无人机等设备的监测数据、科研团队考察数据,以及其他涉生物环境监管部门的历史数据等;对于企业观监测数据,通过项目研发的方式使用企业自建的观监测系统数据,主要包括水环境设备、气象设备、视频等监测数据以及历史积累的数据;对于开放数据,通过网络爬虫、业务系统埋点以及访问数据库的方式进行获取,主要包括中国生物生态数据库、Gebco 全球海陆地形数据库、生物科学大数据中心(http://msdc.qdio.ac.cn/)、NOAA 地球物理数据中心网站 (https://www.ngdc.noaa.gov/)、 Argo 全球观测网站(http://www.argo.ucsd.edu)等相关数据库与网站。

2.2 生物与环境数据应用场景分析

生物与环境大数据平台最终是面向用户的,用户群体包括政府用户、研究机构、企业和个人,因此根据数据用途分类的原则,在整体上可以将基于微服务的生物与环境大数据平台划分为八大应用场景,如图3 所示。

地域管理:生物与环境大数据平台实现涉生物生态环境管理单位对所辖地域的管理,查看地域环境情况、气象预报信息,及时通报相关人员;查看地域生态保护项目工作进度;对地域生态功能区划分与管理,以及地域的保护与开发。

生物生态环境:基于实时生物生态指标数据以及水文数据等,制定周期性生物生态环境质量公报,同时,针对生物生态环境污染的地域,制定合理的生态环境恢复策略;实时进行生物生态环境预警监测,制作环境预测预警公报,向社会预报环境灾害的生成与爆发、生物资源与生态环境破坏风险和威胁因素。

物种种养殖:基于生物生态环境数据以及对往年物种变化、繁殖信息、物种活动及分布数据的分析,总结物种变化数据与生态环境条件的关系,预测采集、种植及养殖高产区域,从而在提高物种繁殖效益的同时,做到对环境的保护,促进生态文明建设。

图4:生物与环境大数据平台框架数据处理流程图

图5:基于微服务的生物与环境大数据平台系统总构架

生物生态执法:基于该大数据平台,建立人员、物种群落保护规定及案件档案,服务环保执法;根据生物生态环境数据,预测生物生态灾害的发生,联合国家相关机构进行生物生态环境灾害应急指挥。

生态旅游:利用大数据分析技术,分析生态旅游的热点路线及热点区域,制定可推荐、安全的个性化旅游路线与策略,实现旅游方式分析与推荐,带动生态旅游业的发展。

生物多样性评价:从平台构建的数据库中调取物种数据、生态环境数据、气候数据等数据并进行实时的云上并行计算,得到符合科研需要和政府决策需求的生物多样性报告。生物多样性评价是一种反映复杂环境问题、表征生物多样性的整体状况和趋势的概括性数据和信息工具,能用于评价不同水平的生物多样性保护措施,并且通过政策干预和其他行动对所涉及的问题发出信号[8]。因此,对于某一地区而言,为提高生物多样性的管理,创新管理模式,推动管理方式从粗放型向精细型转变,整体提升生物多样性的管理科学性,进行生物多样性评估非常重要且必要。

产品追溯:提供相关地区生物与地方性特色生态产品的种养殖、生产与加工过程、包装出库、销售与流通的全过程追溯,通过将生物生态产品、生产企业及相关信息纳入平台建设,方便对生物生态产品进行查询和溯源,形成地方特色,助推产品销售与宣传。

2.3 基于微服务的生物与环境大数据平台数据处理流程

基于微服务的生物与环境大数据平台框架架构的设计以及标准体系的研究具体结合了各项业务的功能需求,实现对基于微服务构架的数据处理流程设计,如图4所示,主要包括数据源、数据采集、数据存储、数据处理和数据应用五个层面。

图6:基于微服务的生物与环境大数据平台系统网络拓扑

图7:基于微服务的生物与环境大数据平台系统主要类设计

其中,数据采集主要通过多种数据采集手段来采集生物资源数据、生态环境数据,通过网络爬虫、业务系统埋点、数据迁移以及数据分发等方式将分散的生物生态信息数据采集到文件或数据库中。数据存储主要是将采集到的生物资源与生态环境数据存储到基于微服务的生物与环境大数据平台的分布式数据节点内。数据处理根据业务需求利用数据处理模型等方式对数据进行分析处理。

3 基于微服务的生物与环境大数据平台的设计

3.1 系统总体结构设计

基于微服务的生物与环境大数据平台采用微服务架构思想设计,对系统整体功能模块进行拆分,具体业务划分为共享交换服务、用户管理服务、权限控制服务及日志管理服务等单一的、具体的、独立的服务。服务间采用轻量级的API 调用形式,并且配合Spring boot 及Spring Cloud 构筑成前端的微服务构架。此外,由于现有生物资源与生态环境保护领域的发展存在瓶颈,无法充分利用数据,并无法安全保护数据。而生物与环境大数据平台能够利用HBase 文件存储系统实现生物生态数据的存储备份,而且系统扩容方便,通过增加物理服务器节点的方式在后期增强系统存储能力。对于现有的存储的大量监测数据,传统的数据分析算法在读写以及分析上已经很难进行下去,不能作为海量数据的分析方法,但基于大数据和微服务的生物与环境云平台能够利用 MapReduce 对数据分析处理任务进行并行化操作,通过集群来实现海量数据的处理,效率得到了显著提高。综上所述,系统的总体技术结构图如图5所示。

3.2 系统网络拓扑设计

系统使用Nginx 作为负载均衡服务器,两台Nginx 服务器采用Keepalived实现高可用,使用Tomcat 作为应用服务器,将微服务单独部署到一台服务器上,使用Redis 作为数据缓存服务器,数据库采用主从热备份的方式来保证系统数据库的稳定。同时,集群服务器由master、slave1、slave2 等节点做组成,包 含 了Ajax、Redis、Spring Batch、Apache Storm、Apache Spark 等组件,平台系统网络拓扑设计如图6 所示。

3.3 数据类的设置

基于微服务的生物与环境大数据平台系统主要是对采集到的监测数据根据任务项目进行分析评价,分析方法是基于若干公式的组合计算以及生物生态环境质量评价模型算法,最终得到分析评价的结果并针对结果的统计预警等功能。平台以 Task、Project、Standard、Method 等类作为分析评价的基础,在 Evaluate 类中进行计算,最终结果在 AnalysisResult 类中存放。如图7 所示。

4 总结

本文以基于微服务的生物与环境大数据平台系统设计为主线,深入了解生物资源保护与生态环境领域的数据化和网络化管理需求,提出了基于Spring 框架和Hadoop 的大数据平台框架构想,设计了生物与环境大数据平台的总体架构、数据处理流程以及技术路线。灵活地将微服务网络技术与大数据技术应用到生物生态管理领域,打造生物与环境大数据平台系统,利用大数据技术在生物生态领域的深度融合来提升信息技术、科技创新在生态环境与生物多样性保护发展中的贡献率。但是,随着生物生态相关业务的不断发展,还需要对该平台不断进行完善,以适应新的需求。

猜你喜欢

架构数据库生物
基于FPGA的RNN硬件加速架构
生物多样性
生物多样性
上上生物
功能架构在电子电气架构开发中的应用和实践
第12话 完美生物
LSN DCI EVPN VxLAN组网架构研究及实现
一种基于FPGA+ARM架构的μPMU实现