轨道交通工程BIM+GIS云平台微服务架构
Posted 铁路BIM联盟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了轨道交通工程BIM+GIS云平台微服务架构相关的知识,希望对你有一定的参考价值。
为解决轨道交通工程BIM+GIS云平台在多站点、多区间、多线路管理中BIM、GIS数据量大、数据服务庞杂、并发访问量大等问题,研究分析单体服务架构缺陷和微服务架构优势,在制定微服务拆分方式和设计原则的基础上,实现了轨道交通工程BIM+GIS云平台的微服务架构设计
当前轨道交通工程BIM技术应用主要为BIM建模及模型应用、BIM方案展示、BIM协同设计等,随着5G、大数据、物联网、云计算、移动应用等技术水平的提高,结合轨道交通工程线网状特点,并以GIS为骨架进行整合,二维平面抽象的信息化管理向BIM+GIS云平台可视化管理升级已成为必然趋势。
轨道交通工程BIM+GIS云平台需承载大量BIM模型、GIS瓦片数据、过程信息及文档等,同时,需满足大量模型导入与操作的流畅性服务需求。单体服务架构的BIM+GIS云平台较难满足多用户并发访问、加载、操作BIM与GIS数据时的快速响应,且会带来耦合度高、可靠性低、维护难度大、扩展困难、阻碍技术创新等诸多不利因素,不满足轨道交通工程BIM+GIS云平台应用要求。
本文引入微服务架构设计轨道交通工程BIM+GIS云平台,在实现三维可视化管理应用的基础上,合理利用硬件及网络资源,提供更流畅的加载、浏览、管理等服务。
微服务架构分析与选型
微服务架构分析
微服务架构将单体服务程序拆分为一组小型服务,每个小型服务运行在独立进程中,小型服务间的通信采用REST API轻量级HTTP通信接口机制。
研发人员可围绕业务功能模块构建小型服务集,不同的小型服务相对独立,可采用不同的服务器、编程语言、数据库、存储方式等,但会产生一些额外要求,例如:需制定微服务间的通信机制和解决跨服务器网络连接稳定性问题。
微服务架构在轨道交通工程BIM+GIS 云平台中应用的优点:(1)易于开发与维护,松耦合模式、专注于单一服务、边界清晰、复杂度低;(2)容错度高,故障针对单一微服务,可通过重试、平稳退化等机制实现应用层容错;(3)易于扩展,每个微服务可独立扩展;(4)易于创新,技术选型灵活、去中心化,各团队可自由选择合适的技术路线,技术升级重构风险低,不影响整体研发进度。
微服务架构框架选型
目前市场上主流的微服务架构框架有Apache Dubbo、Spring Boot/Cloud、Thrift、Motan、gRPC等,主要分为HTTP、RPC通信协议两类。
本文研发的轨道交通工程BIM+GIS云平台,后端采用Spring MVC Framework 与MyBatis持久化组件, 数据库采用mysql与MongoDB, 前端采用Vue.js。根据BIM+GIS 云平台主要技术路线,对比多种开源框架,选择与轨道交通工程特点契合度高的SpringBoot/Cloud 框架实现微服务架构。
平台架构设计
微服务拆分
本文依据单一职责、服务自治、轻量级通信、接口明确的原则,将轨道交通工程BIM+GIS云平台从一个单体服务拆分为多个微服务,包括监控量测、风险源、报表服务、整改处置、进度管理、预警巡查、文件服务、盾构机服务等。拆分后的微服务通过注册中心统一管理,网关认证鉴定后分发,对外提供网页访问服务。
微服务架构设计
轨道交通工程BIM+GIS云平台微服务架构设计需考虑多方面因素。
(1)统一API网关,实现内部服务的统一认证与鉴权,避免监控量测、报表服务、盾构机服务等内部服务重复认证与鉴权,提高资源利用效率。
(2)数据库横向扩展,BIM+GIS云平台采用关系型MySQL主数据库,分布式部署,数据库节点可随需求的增加而随时增加。
(3)有层次的缓存,针对静态数据如GIS瓦片数据、轨道交通工程BIM模型等,平台通过CDN将数据缓存在距离客户端最近的节点,就近加载;针对动态数据,如盾构机实时监测数据、风险源状态数据、实时进度数据等,平台采用Redis缓存,使大部分服务请求可读取Redis缓存数据,减轻数据库压力。
(4)服务编排管理依赖关系,将服务部署代码化,实现服务发布、更新、追溯、弹性收缩等功能,增加服务的可追溯性、易管理性和自动化能力。
(5)统一配置中心,管理所有微服务环境,进行集中配置,保障云平台底层支撑与对外服务连接通畅。
(6)统一日志服务,所有微服务遵守统一日志规范,便于查询分析。
(7)服务具备熔断、限流、降级能力,繁忙、线程池满、连接池满则及时熔断,超时则返回,负载过高则对部分服务限流、降级以保障核心服务。
综合考虑以上7方面因素,轨道交通工程BIM+GIS云平台微服务架构,应用
SpringBoot/Cloud 框架支撑、监控服务治理,结合底层数据(数据库、文件)的读写操作权限,部署监控量测、报表服务、盾构机服务等微服务应用,实现终端用户鉴权认证后的业务管理。
云平台微服务架构
SpringBoot/Cloud框架主要包含:Spring CloudEureka用于服务注册和发现、断路器Netflix Hystrix用于熔断保护、Spring Cloud Ribbon用于负载均衡、声明式REST客户端Feign调用远端HTTP 服务、Netflix Zuul用于智能路由和过滤、SpringCloud Config用于配置中心、Spring Cloud Sleuth用于链路跟踪,同时每个微服务单独连接数据库。
轨道交通工程BIM+GIS 云平台微服务架构,可对网关、注册中心、微服务进行集群配置与发布。
轨道交通工程BIM+GIS云平台微服务架构集群设计
随着轨道交通工程线网统一管理需求的深化,数据量、访问量急剧增加,为缩短平台响应时间,提高并发请求数,可在微服务架构的业务集群中增加主机扩展节点并配置到相应的注册中心,以应对轨道交通工程BIM+GIS管理需求的增长。
微服务架构运用
本文基于微服务架构的轨道交通工程BIM+GIS云平台实现工程建设全生命周期管理,包括设计阶段的协同工作、文档管理、三维浏览,施工阶段的质量管理、安全管理、进度管理,运营维护阶段的资产管理、巡检管理、应急管理等。设计单位、施工单位、监理单位、设备单位等可基于轨道交通工程BIM+GIS 云平台实现数字化交付与协同建设运营维护管理。
云平台应用
目前,基于微服务架构的轨道交通工程BIM+GIS云平台已在大连地铁5号线火梭区间海底盾构隧道施工过程中试运行。现场实践应用表明,相较于单体架构的BIM+GIS平台,在同等数据规模和访问量的情况下,平台内存占用从1.4 GB左右降低至500MB,原始场景加载从10s降低至3s,操作流畅度增加100%,并消除卡顿现象,盾构机等实时大量数据经Redis缓存后导入MySQL,使效率提高80%,服务稳定性提高200%以上。较好地满足现阶段单个工点、单条轨道交通工程线路,以及未来扩展多条轨道交通工程线路的管理需求。
实践表明,基于微服务架构的轨交通工程BIM+GIS云平台性能、承载能力、用户
体验度大幅度提高。微服务架构的应用,为BIM+GIS轨道交通工程云平台进一步深化研发及多领域应用提供技术支撑
内容来源:
铁路BIM联盟成员单位——中铁第六勘察设计院集团有限公司
王震宇,赵兴伟,付功云.
轨道交通工程BIM+GIS云平台微服务架构研究[J].铁路计算机应用.
(铁路BIM联盟文章,转发请注明出处)
欢迎留言!
如果您有好的意见和建议,也请不吝留言,小编会对留言进行整理收集,建设性意见和建议会转达联盟秘书处。
以上是关于轨道交通工程BIM+GIS云平台微服务架构的主要内容,如果未能解决你的问题,请参考以下文章
SpringCloud微服务云架构构建B2B2C电子商务平台之-服务的注册与发现Eureka