CN113672338A - 城轨数据共享平台的搭建方法、装置和电子设备 - Google Patents
城轨数据共享平台的搭建方法、装置和电子设备 Download PDFInfo
- Publication number
- CN113672338A CN113672338A CN202110815567.4A CN202110815567A CN113672338A CN 113672338 A CN113672338 A CN 113672338A CN 202110815567 A CN202110815567 A CN 202110815567A CN 113672338 A CN113672338 A CN 113672338A
- Authority
- CN
- China
- Prior art keywords
- service
- micro
- splitting
- module
- data sharing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000010276 construction Methods 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims description 43
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 10
- 238000004140 cleaning Methods 0.000 claims description 5
- 238000001914 filtration Methods 0.000 claims description 5
- 238000009434 installation Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种城轨数据共享平台的搭建方法、装置和电子设备,包括:将城轨数据共享平台需要布设的各轨道交通软件应用转为对应的容器镜像并上传至服务器集群中的harbor仓库;在服务器集群上安装容器编排引擎Kubernetes;通过配置部署服务的非标记语言yaml文件,调用Kubernetes在预先构建的微服务架构上部署各个对应的容器镜像,以供各轨道交通软件应用运行;微服务架构的构建包括微服务控制层拆分、微服务存储模块拆分、微服务调度模块拆分和微服务业务模块拆分。本发明提供的方法、装置和电子设备,实现了模块间解耦,提高了平台的灵活可用性和计算资源利用率,降低了平台开发和部署成本。
Description
技术领域
本发明涉及微服务技术领域,尤其涉及一种城轨数据共享平台的搭建方法、装置和电子设备。
背景技术
传统的控制器实现业务模型和用户界面分离(Model View Controller,MVC)架构,所有的子系统都集成在一个很繁杂的JVM进程中,这种单体架构的优点在于方便管理,所有代码在同一项目中,但是当需求越来越多,项目规模越来越大,其坏处也很明显。当大大小小的功能模块都集中在同一项目的时候,整个项目必然会变得臃肿,让开发者难以维护。单体应用的代码越来越多,依赖的资源越来越多时,应用编译打包、部署测试一次非常耗时。系统高可用性差,资源无法隔离,整个单体系统的各个功能模块都依赖于同样的数据库、内存等资源,一旦某个功能模块对资源使用不当,整个系统都会被拖垮。当系统的访问量越来越大的时候,单体系统固然可以进行水平扩展,部署在多台机器上组成集群,但是这种扩展并非灵活的扩展,因此,急需一种方法将应用的不同模块进行解耦,从而降低开发和部署成本。要解决上面单体应用的问题,就必须引入服务化的概念。
微服务架构是一种架构风格和架构思想,它倡导我们在传统软件应用架构的基础上,将系统业务按照功能拆分为更加细粒度的服务,所拆分的每一个服务都是一个独立的应用,这些应用对外提供公共的应用程序编程接口(Application ProgrammingInterface,API),可以独立承担对外服务的职责,通过此种思想方式所开发的软件服务实体就是“微服务”。微服务可以说是更细维度的服务化,小到一个子模块,只要该模块依赖的资源与其他模块都没有关系,那么就可以拆分为一个微服务。传统的单体架构是以整个系统为单位进行部署,而微服务则是以每一个独立组件为单位进行部署。每个微服务都可以交由一个小团队进行开发,测试维护部署,并对整个生命周期负责,当我们将每个微服务都隔离为独立的运行单元之后,任何一个或者多个微服务的失败都将只影响自己或者少量其他微服务,而不会大面积地波及整个服务运行体系。
Kubernetes是一种开源的容器编排引擎,用于管理运行应用程序的容器。能够自动进行服务负载均衡,方便自动部署和回滚,能够检查应用的运行状态,进行自我修复。通过容器化及容器编排技术,使得系统更易于使用且功能更强大、系统更健壮、更为弹性和可扩展,同时能够合理使用硬件资源。
由于传统的城轨数据共享平台项目开发通常是将大大小小的功能模块都集中在同一个平台项目中,系统耦合性高可用性差,资源无法隔离,每修改一次代码都需要考虑到整体项目是否会受影响,且整个项目都需要重新打包部署,使得开发和部署成本非常高。
因此,如何避免传统的城轨数据共享平台搭建中各个模块的耦合性太高,导致可用性差,资源无法隔离资源利用效率低下,且开发和部署成本非常高的情况,仍然是本领域技术人员亟待解决的问题。
发明内容
本发明提供一种城轨数据共享平台的搭建方法、装置和电子设备,用以解决传统的城轨数据共享平台搭建中各个模块的耦合性太高,导致可用性差,资源无法隔离资源利用效率低下,且开发和部署成本非常高的问题,实现解耦后的模块资源可以根据各轨道交通软件应用的资源占用情况灵活配置各个模块的资源,Kubernetes采用容器化部署,可动态增加服务节点以实现所述灵活配置各个模块的资源。
本发明提供一种城轨数据共享平台的搭建方法,包括:
将城轨数据共享平台需要布设的各轨道交通软件应用转为对应的容器镜像并上传至服务器集群中的harbor仓库;
在所述服务器集群上安装容器编排引擎Kubernetes;
通过配置部署服务的非标记语言yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像,以供所述各轨道交通软件应用运行;
其中,所述微服务架构的构建包括微服务控制层拆分、微服务存储模块拆分、微服务调度模块拆分和微服务业务模块拆分。
根据本发明提供的一种城轨数据共享平台的搭建方法,所述微服务控制层拆分,具体包括:
搭建所述各轨道交通软件应用的统一请求入口,部署第一预设个数的入口节点,并在所述入口节点之前加上Nginx负载均衡;
其中,所述入口节点设置对远程接口消费时间的超时处理。
根据本发明提供的一种城轨数据共享平台的搭建方法,所述微服务业务模块拆分,具体包括:
将所述各轨道交通软件应用中需要使用的业务模块进行拆分,搭建远程调用接口,部署第二预设个数的业务处理节点;
其中,所述远程调用接口用于所述微服务控制层的调用。
根据本发明提供的一种城轨数据共享平台的搭建方法,所述微服务存储模块拆分,具体包括:
搭建所述各轨道交通软件应用的服务接口,所述微服务业务模块、所述服务接口和数据库依次连接;
其中,所述服务接口还用于统一对数据库中的数据进行过滤和清洗处理。
根据本发明提供的一种城轨数据共享平台的搭建方法,所述微服务调度模块拆分,具体包括:
搭建与所述微服务存储模块和所述微服务业务模块均连接的定时任务模块;
其中,所述定时任务模块基于接收到所述微服务存储模块发送的任务信息中的定时任务周期控制所述微服务业务模块以对应的周期执行各业务处理。
根据本发明提供的一种城轨数据共享平台的搭建方法,所述通过配置部署服务的yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像,具体包括:
通过web页面输入配置指令,生成对应的部署服务的yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像。
根据本发明提供的一种城轨数据共享平台的搭建方法,所述配置部署服务的yaml文件,具体包括:
基于所述各轨道交通软件应用的请求资源占用量确定所述微服务控制层的部署入口节点数量;
基于所述各轨道交通软件应用的业务处理资源占用量确定所述微服务业务模块的部署业务处理节点数量;
基于所述部署入口节点数量和部署业务处理节点数量配置部署服务的yaml文件。
本发明还提供一种城轨数据共享平台的搭建装置,包括:
上传单元,用于将城轨数据共享平台需要布设的各轨道交通软件应用转为对应的容器镜像并上传至服务器集群中的harbor仓库;
安装单元,用于在所述服务器集群上安装容器编排引擎Kubernetes;
配置运行单元,用于通过配置部署服务的yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像,以供所述各轨道交通软件应用运行;
其中,所述微服务架构的构建包括微服务控制层拆分、微服务存储模块拆分、微服务调度模块拆分和微服务业务模块拆分。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述的城轨数据共享平台的搭建方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述的城轨数据共享平台的搭建方法的步骤。
本发明提供的城轨数据共享平台的搭建方法、装置和电子设备,通过将城轨数据共享平台需要布设的各轨道交通软件应用转为对应的容器镜像并上传至服务器集群中的harbor仓库;在所述服务器集群上安装容器编排引擎Kubernetes;通过配置部署服务的非标记语言yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像,以供所述各轨道交通软件应用运行;其中,所述微服务架构的构建包括微服务控制层拆分、微服务存储模块拆分、微服务调度模块拆分和微服务业务模块拆分。由于调用容器编排引擎Kubernetes采用预先构建的微服务架构部署各轨道交通软件应用对应的容器镜像,以供所述各轨道交通软件应用运行,其中,所述微服务架构的构建包括微服务控制层拆分、微服务存储模块拆分、微服务调度模块拆分和微服务业务模块拆分,由于将传统的城轨数据共享平台系统各模块拆分构建微服务架构,使系统解耦,便于各模块独立开发和维护,而且解耦后的模块资源可以根据各轨道交通软件应用的资源占用情况灵活配置各个模块的资源,Kubernetes采用容器化部署,可动态增加服务节点以实现所述灵活配置各个模块的资源。因此,本发明提供的方法、装置和电子设备,实现了平台搭建中各个模块的解耦,提高平台的灵活可用性,提高计算资源利用率,且降低了平台开发和部署成本。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种城轨数据共享平台的搭建方法的流程示意图;
图2为本发明提供的Kubernetes部署服务流程图;
图3为现有技术提供的传统服务系统架构图;
图4为本发明提供的微服务系统架构图;
图5为本发明提供的城轨数据共享平台的搭建装置的结构示意图;
图6为本发明提供的一种电子设备的实体结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
由于传统的城轨数据共享平台搭建中普遍存在各个模块的耦合性太高,导致可用性差,资源无法隔离资源利用效率低下,且开发和部署成本非常高的问题。下面结合图1-图4描述本发明的一种城轨数据共享平台的搭建方法。图1为本发明提供的一种城轨数据共享平台的搭建方法的流程示意图,如图1所示,该方法包括:
步骤110,将城轨数据共享平台需要布设的各轨道交通软件应用转为对应的容器镜像并上传至服务器集群中的harbor仓库。
具体地,将需要搭建的城轨数据共享平台中包含的各轨道交通软件应用打成docker镜像,然后将所述docker镜像上传至harbor仓库。此处对harbor仓库进行介绍说明:docker容器应用的开发和运行离不开可靠的镜像管理,虽然docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署私有环境内的Registry也是非常必要的。harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。
步骤120,在所述服务器集群上安装容器编排引擎Kubernetes。
具体地,在城轨数据共享平台依赖的硬件服务器集群上安装容器编排引擎Kubernetes。此处还对Kubernetes进行介绍说明:Kubernetes是一种开源的容器编排引擎,用于管理运行应用程序的容器。能够自动进行服务负载均衡,方便自动部署和回滚,能够检查应用的运行状态,进行自我修复。通过容器化及容器编排技术,使得系统更易于使用且功能更强大、系统更健壮、更为弹性和可扩展,同时能够合理使用硬件资源。
步骤130,通过配置部署服务的非标记语言yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像,以供所述各轨道交通软件应用运行;
其中,所述微服务架构的构建包括微服务控制层拆分、微服务存储模块拆分、微服务调度模块拆分和微服务业务模块拆分。
具体地,通过配置部署服务的非标记语言yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像。其中,配置部署服务的非标记语言yaml文件可以是维护人员手动编写的,还可以是在预先生成的模版上由维护人员填入简单的若干需要配置的参数自动生成,此处不作具体限定。而所述配置好的部署服务的非标记语言yaml文件中的关键信息是如何将所述各个对应的容器镜像部署于预先构建的微服务架构上,即部署预先构建的微服务架构中的各个模块的节点资源。
例如,当前需要搭建的城轨数据共享平台需要布设的各轨道交通软件应用中的接收的外部访问请求非常多,那么所述yaml文件中会配置微服务控制层中的入口节点的数量较多,若需要布设的各轨道交通软件应用中的需要的业务处理并不多,例如不需要进行大量的视频处理、日志处理或者数据处理,那么所述yaml文件中会配置微服务业务模块中的业务处理节点的数量较少。
由于微服务架构的构建包括微服务控制层拆分、微服务存储模块拆分、微服务调度模块拆分和微服务业务模块拆分,如此,不会将控制层、存储模块、调度模块和业务模块进行对应于一组组特定任务的一组组的绑定,当需要搭建的城轨数据共享平台的访问量突然增加时,对于原有的架构而言,各个特定任务中的控制层、存储模块、调度模块和业务模块作为一个整体的组合需要整组的增加,而本发明提供的微服务架构中,只需要增加处理访问请求的微服务控制层,其他模块基于各自的处理需求进行资源部署,如此将模块间进行解耦可以实现资源利用率的提高。
图2为本发明提供的Kubernetes部署服务流程图,如图2所示,简单描述了Kubernetes部署服务的流程,最后还包括一个动态扩展服务是为了给需要搭建的城轨数据共享平台如果要临时增加轨道交通软件应用提供扩展功能。
图3为现有技术提供的传统服务系统架构图,如图3所示,在传统系统架构中,任一特定任务都会绑定一个控制层、业务模块(数据处理、日志处理、视频处理或其他模块)、调度模块(定时任务)和存储模块组成的整体结构,图3中的Nginx负载均衡处理下来的请求有两个分支可走,这两个分支就对应了两个特定任务,因此,每个任务都需要使用该完整的整体结构,导致不同任务之间的同类型模块不能共用,而一个任务中的各模块又耦合严重。
图4为本发明提供的微服务系统架构图,如图4所示,微服务系统架构中将以特定任务为单元构建各自包括4个模块的整体结构的模式打破,所有任务还是需要进行所述4个模块的处理,但是任务之间可以共享模块,各个任务的控制层统一进行拆分得到总体的控制层,图4中控制层的入口节点包括3个,分别为控制层1、控制层2和控制层3,用于处理城轨数据共享平台所有的请求访问,各个任务的处理模块统一进行拆分得到总体的处理模块,里面包括有视频处理、日志处理、数据处理和其他业务处理,根据处理城轨数据共享平台所有需要处理的业务量进行各个处理节点个数的调整,由于调度模块(定时任务)工作量一向不饱和,因此,在调度模块拆分后,只需要配置一个定时任务模块即可完成所有的业务处理的处理周期设定,避免原始框架中调度模块的配置冗余,各个任务的存储模块也统一进行拆分得到总体的存储模块,图4中整体的存储模块的存储节点包括3个,分别为存储模块1、存储模块2和存储模块3,用于处理城轨数据共享平台所有的需要向底层数据库获取数据请求的转发。
本发明提供的城轨数据共享平台的搭建方法,由于调用容器编排引擎Kubernetes采用预先构建的微服务架构部署各轨道交通软件应用对应的容器镜像,以供所述各轨道交通软件应用运行,其中,所述微服务架构的构建包括微服务控制层拆分、微服务存储模块拆分、微服务调度模块拆分和微服务业务模块拆分,由于将传统的城轨数据共享平台系统各模块拆分构建微服务架构,使系统解耦,便于各模块独立开发和维护,而且解耦后的模块资源可以根据各轨道交通软件应用的资源占用情况灵活配置各个模块的资源,Kubernetes采用容器化部署,可动态增加服务节点以实现所述灵活配置各个模块的资源。因此,本发明提供的方法,实现了平台搭建中各个模块的解耦,提高平台的灵活可用性,提高计算资源利用率,且降低了平台开发和部署成本。
基于上述实施例,该方法中,所述微服务控制层拆分,具体包括:
搭建所述各轨道交通软件应用的统一请求入口,部署第一预设个数的入口节点,并在所述入口节点之前加上Nginx负载均衡;
其中,所述入口节点设置对远程接口消费时间的超时处理。
具体地,身份认证、权限管理作为系统的第一道安全屏障,应和请求控制层模块拆分出来,单独作为一个微服务,在此服务中可以过滤掉大量的恶意请求。此模块作为所有请求的入口是一个纯粹的服务调用者,只对请求进行身份认证、对请求的资源进行权限认证等,验证成功后通过远程调用具体的服务方法对请求进行处理。此模块作为所有请求的入口,需要多节点部署,并通过nginx进行负载均衡,需要对远程接口消费时间设置超时处理。
本实施例提供的方法,进一步限定了微服务控制层的拆分方式,并进一步给出了拆分后的微服务控制层具体需要提供的功能。
基于上述实施例,该方法中,所述微服务业务模块拆分,具体包括:
将所述各轨道交通软件应用中需要使用的业务模块进行拆分,搭建远程调用接口,部署第二预设个数的业务处理节点;
其中,所述远程调用接口用于所述微服务控制层的调用。
具体地,将各业务模块拆分出来,提供远程调用接口,供控制层、其他业务层调用,可根据不同模块处理逻辑复杂层度不同,部署节点数不同。
本实施例提供的方法,进一步限定了微服务业务模块的拆分方式,并进一步给出了拆分后的微服务业务模块具体需要提供的服务,以及与所述微服务控制层的连接关系。
基于上述实施例,该方法中,所述微服务存储模块拆分,具体包括:
搭建所述各轨道交通软件应用的服务接口,所述微服务业务模块、所述服务接口和数据库依次连接;
其中,所述服务接口还用于统一对数据库中的数据进行过滤和清洗处理。
具体地,数据存储模块作为与数据库以及各种存储引擎交互必不可少的模块,需单独拆分出来作为一个微服务。此模块作为纯粹的服务提供者,只提供对外的服务接口,其他模块可以通过调用此接口完成与数据库的交互。将此模块独立可以统一对数据进行处理,如重复数据过滤、不合格数据清洗等。
本实施例提供的方法,进一步限定了微服务存储模块的拆分方式,并进一步给出了拆分后的微服务存储模块具体需要提供的服务,以及与所述微服务业务模块和数据库的连接关系。
基于上述实施例,该方法中,所述微服务调度模块拆分,具体包括:
搭建与所述微服务存储模块和所述微服务业务模块均连接的定时任务模块;
其中,所述定时任务模块基于接收到所述微服务存储模块发送的任务信息中的定时任务周期控制所述微服务业务模块以对应的周期执行各业务处理。
具体地,针对项目中如定时任务等,不作为请求的入口,也不对外提供接口服务,应拆分出来作为单独的模块。此类模块相对于其他模块基本不对请求做直接处理,没有请求超时这方面的要求,执行时间长的任务、且不需要及时反馈的业务都可以放在此模块。
任务的集中处理,方便引入动态任务管理。动态任务可以方便的管理所有任务,配置方面不再需要通过在配置文件中配置定时任务周期,而是将任务信息存储在数据库中,可以对任务进行动态启停等。
本实施例提供的方法,进一步限定了微服务调度模块的拆分方式,并进一步给出了拆分后的微服务调度模块具体需要提供的服务,以及与所述微服务存储模块和所述微服务业务模块的连接关系。
基于上述实施例,该方法中,所述通过配置部署服务的yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像,具体包括:
通过web页面输入配置指令,生成对应的部署服务的yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像。
具体地,在生成部署服务的yaml文件时,最传统的方式就是由维护人员自己编写,将需要设定的参数在编写的过程中加入yaml文件,但是这种方式在需要经常调整部署时会增加人工操作量,因此,本发明提供的方式是将yaml文件模版化,然后搭建web界面,用于用户输入需要配置的参数指令,然后后台基于存储的yaml文件模版直接生成对应的部署服务yaml文件,方便维护人员简单调整服务部署。
本实施例提供的方法,提供了一种更简便的生成部署服务的yaml文件的方式,即通过web页面下发简单指令控制预先写好的配置文件模板生成对应的配置文件,提高了服务配置部署效率。
基于上述实施例,该方法中,所述配置部署服务的yaml文件,具体包括:
基于所述各轨道交通软件应用的请求资源占用量确定所述微服务控制层的部署入口节点数量;
基于所述各轨道交通软件应用的业务处理资源占用量确定所述微服务业务模块的部署业务处理节点数量;
基于所述部署入口节点数量和部署业务处理节点数量配置部署服务的yaml文件。
具体地,配置部署服务的yaml文件中最关键的参数就是需要设定的微服务控制层的部署入口节点数量和微服务业务模块的部署业务处理节点数量。下面给出一个部署服务的yaml文件的示例:
执行命令kubectl apply-f realtimr.yaml部署服务,动态扩展副本执行命令kubectl patch deployment realtime-p'{"spec":{"replicas":5}}'-n datatransfer3。
在上述代码的前半部分完成“datatransfer3”模块的拆分搭建,上述动态扩展副本执行的命令“kubectl patch deployment realtime-p'{"spec":{"replicas":5}}'-ndatatransfer3”中通过“"replicas":5”为“datatransfer3”模块部署5个资源节点。
本实施例提供的方法,限定了部署服务的yaml文件中关键参数,给出了部署服务的yaml文件的具体配置方法。
下面对本发明提供的城轨数据共享平台的搭建装置进行描述,下文描述的城轨数据共享平台的搭建装置与上文描述的一种城轨数据共享平台的搭建方法可相互对应参照。
图5为本发明提供的城轨数据共享平台的搭建装置的结构示意图,如图5所示,城轨数据共享平台的搭建装置包括上传单元510、安装单元520和配置运行单元530,其中,
所述上传单元510,用于将城轨数据共享平台需要布设的各轨道交通软件应用转为对应的容器镜像并上传至服务器集群中的harbor仓库;
所述安装单元520,用于在所述服务器集群上安装容器编排引擎Kubernetes;
所述配置运行单元530,用于通过配置部署服务的yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像,以供所述各轨道交通软件应用运行;
其中,所述微服务架构的构建包括微服务控制层拆分、微服务存储模块拆分、微服务调度模块拆分和微服务业务模块拆分。
本发明提供的城轨数据共享平台的搭建装置,由于调用容器编排引擎Kubernetes采用预先构建的微服务架构部署各轨道交通软件应用对应的容器镜像,以供所述各轨道交通软件应用运行,其中,所述微服务架构的构建包括微服务控制层拆分、微服务存储模块拆分、微服务调度模块拆分和微服务业务模块拆分,由于将传统的城轨数据共享平台系统各模块拆分构建微服务架构,使系统解耦,便于各模块独立开发和维护,而且解耦后的模块资源可以根据各轨道交通软件应用的资源占用情况灵活配置各个模块的资源,Kubernetes采用容器化部署,可动态增加服务节点以实现所述灵活配置各个模块的资源。因此,本发明提供的装置,实现了平台搭建中各个模块的解耦,提高平台的灵活可用性,提高计算资源利用率,且降低了平台开发和部署成本。
在上述实施例的基础上,该城轨数据共享平台的搭建装置中,所述微服务控制层拆分,具体包括:
搭建所述各轨道交通软件应用的统一请求入口,部署第一预设个数的入口节点,并在所述入口节点之前加上Nginx负载均衡;
其中,所述入口节点设置对远程接口消费时间的超时处理。
在上述实施例的基础上,该城轨数据共享平台的搭建装置中,所述微服务业务模块拆分,具体包括:
将所述各轨道交通软件应用中需要使用的业务模块进行拆分,搭建远程调用接口,部署第二预设个数的业务处理节点;
其中,所述远程调用接口用于所述微服务控制层的调用。
在上述实施例的基础上,该城轨数据共享平台的搭建装置中,所述微服务存储模块拆分,具体包括:
搭建所述各轨道交通软件应用的服务接口,所述微服务业务模块、所述服务接口和数据库依次连接;
其中,所述服务接口还用于统一对数据库中的数据进行过滤和清洗处理。
在上述实施例的基础上,该城轨数据共享平台的搭建装置中,所述微服务调度模块拆分,具体包括:
搭建与所述微服务存储模块和所述微服务业务模块均连接的定时任务模块;
其中,所述定时任务模块基于接收到所述微服务存储模块发送的任务信息中的定时任务周期控制所述微服务业务模块以对应的周期执行各业务处理。
在上述实施例的基础上,该城轨数据共享平台的搭建装置中,所述通过配置部署服务的yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像,具体包括:
通过web页面输入配置指令,生成对应的部署服务的yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像。
在上述实施例的基础上,该城轨数据共享平台的搭建装置中,所述配置部署服务的yaml文件,具体包括:
基于所述各轨道交通软件应用的请求资源占用量确定所述微服务控制层的部署入口节点数量;
基于所述各轨道交通软件应用的业务处理资源占用量确定所述微服务业务模块的部署业务处理节点数量;
基于所述部署入口节点数量和部署业务处理节点数量配置部署服务的yaml文件。
图6为本发明提供的一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communications Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的逻辑指令,以执行城轨数据共享平台的搭建方法,该方法包括:将城轨数据共享平台需要布设的各轨道交通软件应用转为对应的容器镜像并上传至服务器集群中的harbor仓库;在所述服务器集群上安装容器编排引擎Kubernetes;通过配置部署服务的非标记语言yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像,以供所述各轨道交通软件应用运行;其中,所述微服务架构的构建包括微服务控制层拆分、微服务存储模块拆分、微服务调度模块拆分和微服务业务模块拆分。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的城轨数据共享平台的搭建方法,该方法包括:将城轨数据共享平台需要布设的各轨道交通软件应用转为对应的容器镜像并上传至服务器集群中的harbor仓库;在所述服务器集群上安装容器编排引擎Kubernetes;通过配置部署服务的非标记语言yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像,以供所述各轨道交通软件应用运行;其中,所述微服务架构的构建包括微服务控制层拆分、微服务存储模块拆分、微服务调度模块拆分和微服务业务模块拆分。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的城轨数据共享平台的搭建方法,该方法包括:将城轨数据共享平台需要布设的各轨道交通软件应用转为对应的容器镜像并上传至服务器集群中的harbor仓库;在所述服务器集群上安装容器编排引擎Kubernetes;通过配置部署服务的非标记语言yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像,以供所述各轨道交通软件应用运行;其中,所述微服务架构的构建包括微服务控制层拆分、微服务存储模块拆分、微服务调度模块拆分和微服务业务模块拆分。
以上所描述的服务器实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种城轨数据共享平台的搭建方法,其特征在于,包括:
将城轨数据共享平台需要布设的各轨道交通软件应用转为对应的容器镜像并上传至服务器集群中的harbor仓库;
在所述服务器集群上安装容器编排引擎Kubernetes;
通过配置部署服务的非标记语言yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像,以供所述各轨道交通软件应用运行;
其中,所述微服务架构的构建包括微服务控制层拆分、微服务存储模块拆分、微服务调度模块拆分和微服务业务模块拆分。
2.根据权利要求1所述的城轨数据共享平台的搭建方法,其特征在于,所述微服务控制层拆分,具体包括:
搭建所述各轨道交通软件应用的统一请求入口,部署第一预设个数的入口节点,并在所述入口节点之前加上Nginx负载均衡;
其中,所述入口节点设置对远程接口消费时间的超时处理。
3.根据权利要求1所述的城轨数据共享平台的搭建方法,其特征在于,所述微服务业务模块拆分,具体包括:
将所述各轨道交通软件应用中需要使用的业务模块进行拆分,搭建远程调用接口,部署第二预设个数的业务处理节点;
其中,所述远程调用接口用于所述微服务控制层的调用。
4.根据权利要求1所述的城轨数据共享平台的搭建方法,其特征在于,所述微服务存储模块拆分,具体包括:
搭建所述各轨道交通软件应用的服务接口,所述微服务业务模块、所述服务接口和数据库依次连接;
其中,所述服务接口还用于统一对数据库中的数据进行过滤和清洗处理。
5.根据权利要求1所述的城轨数据共享平台的搭建方法,其特征在于,所述微服务调度模块拆分,具体包括:
搭建与所述微服务存储模块和所述微服务业务模块均连接的定时任务模块;
其中,所述定时任务模块基于接收到所述微服务存储模块发送的任务信息中的定时任务周期控制所述微服务业务模块以对应的周期执行各业务处理。
6.根据权利要求1-5中任一项所述的城轨数据共享平台的搭建方法,其特征在于,所述通过配置部署服务的yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像,具体包括:
通过web页面输入配置指令,生成对应的部署服务的yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像。
7.根据权利要求1-5中任一项所述的城轨数据共享平台的搭建方法,其特征在于,所述配置部署服务的yaml文件,具体包括:
基于所述各轨道交通软件应用的请求资源占用量确定所述微服务控制层的部署入口节点数量;
基于所述各轨道交通软件应用的业务处理资源占用量确定所述微服务业务模块的部署业务处理节点数量;
基于所述部署入口节点数量和部署业务处理节点数量配置部署服务的yaml文件。
8.一种城轨数据共享平台的搭建装置,其特征在于,包括:
上传单元,用于将城轨数据共享平台需要布设的各轨道交通软件应用转为对应的容器镜像并上传至服务器集群中的harbor仓库;
安装单元,用于在所述服务器集群上安装容器编排引擎Kubernetes;
配置运行单元,用于通过配置部署服务的yaml文件,调用所述Kubernetes在预先构建的微服务架构上部署所述各个对应的容器镜像,以供所述各轨道交通软件应用运行;
其中,所述微服务架构的构建包括微服务控制层拆分、微服务存储模块拆分、微服务调度模块拆分和微服务业务模块拆分。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7中任一项所述的城轨数据共享平台的搭建方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7中任一项所述的城轨数据共享平台的搭建方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110815567.4A CN113672338A (zh) | 2021-07-19 | 2021-07-19 | 城轨数据共享平台的搭建方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110815567.4A CN113672338A (zh) | 2021-07-19 | 2021-07-19 | 城轨数据共享平台的搭建方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113672338A true CN113672338A (zh) | 2021-11-19 |
Family
ID=78539532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110815567.4A Pending CN113672338A (zh) | 2021-07-19 | 2021-07-19 | 城轨数据共享平台的搭建方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672338A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114610573A (zh) * | 2022-03-11 | 2022-06-10 | 航天科工智慧产业发展有限公司 | 基于容器编排的微服务监控方法、装置、设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150142949A1 (en) * | 2013-11-18 | 2015-05-21 | Nuwafin Holdings Ltd | System and method for collaborative designing, development, deployment, execution, monitoring and maintenance of enterprise applications |
WO2017045424A1 (zh) * | 2015-09-18 | 2017-03-23 | 乐视控股(北京)有限公司 | 一种应用程序部署系统及部署方法 |
CN109743199A (zh) * | 2018-12-25 | 2019-05-10 | 中国联合网络通信集团有限公司 | 基于微服务的容器化管理系统 |
CN110543537A (zh) * | 2019-08-22 | 2019-12-06 | 广东省城乡规划设计研究院 | 一种基于Docker容器及微服务架构的智慧规划时空云GIS平台 |
CN110750273A (zh) * | 2019-10-14 | 2020-02-04 | 交控科技股份有限公司 | 云平台自动部署方法及系统 |
CN111399897A (zh) * | 2020-02-21 | 2020-07-10 | 北京值得买科技股份有限公司 | 基于kubernetes的应用发布方法以及系统 |
-
2021
- 2021-07-19 CN CN202110815567.4A patent/CN113672338A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150142949A1 (en) * | 2013-11-18 | 2015-05-21 | Nuwafin Holdings Ltd | System and method for collaborative designing, development, deployment, execution, monitoring and maintenance of enterprise applications |
WO2017045424A1 (zh) * | 2015-09-18 | 2017-03-23 | 乐视控股(北京)有限公司 | 一种应用程序部署系统及部署方法 |
CN109743199A (zh) * | 2018-12-25 | 2019-05-10 | 中国联合网络通信集团有限公司 | 基于微服务的容器化管理系统 |
CN110543537A (zh) * | 2019-08-22 | 2019-12-06 | 广东省城乡规划设计研究院 | 一种基于Docker容器及微服务架构的智慧规划时空云GIS平台 |
CN110750273A (zh) * | 2019-10-14 | 2020-02-04 | 交控科技股份有限公司 | 云平台自动部署方法及系统 |
CN111399897A (zh) * | 2020-02-21 | 2020-07-10 | 北京值得买科技股份有限公司 | 基于kubernetes的应用发布方法以及系统 |
Non-Patent Citations (3)
Title |
---|
官东亮;: "基于微服务的业务平台架构重构", 电信科学, no. 09, 30 September 2020 (2020-09-30) * |
潘丹;: "基于Openstack构建Kubernetes集群的实现与研究", 江西科学, no. 02, 30 April 2017 (2017-04-30) * |
王阳: "基于微服务架构的云容器管理系统设计与实现", 中国优秀硕士学位论文全文库(信息科技辑), vol. 2020, no. 4, 15 April 2020 (2020-04-15), pages 6 - 80 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114610573A (zh) * | 2022-03-11 | 2022-06-10 | 航天科工智慧产业发展有限公司 | 基于容器编排的微服务监控方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11294699B2 (en) | Dynamically scaled hyperconverged system establishing minimum supported interoperable communication protocol between clusters in a cluster group | |
US11023215B2 (en) | Methods, systems, and portal for accelerating aspects of data analytics application development and deployment | |
CN108809722B (zh) | 一种部署Kubernetes集群的方法、装置和存储介质 | |
CN110519361B (zh) | 基于kubernetes的容器云平台多租户构建方法及装置 | |
US9661071B2 (en) | Apparatus, systems and methods for deployment and management of distributed computing systems and applications | |
CN112104723B (zh) | 一种多集群的数据处理系统及方法 | |
CN106537338B (zh) | 自扩展云 | |
US9253265B2 (en) | Hot pluggable extensions for access management system | |
EP3559801A1 (en) | Methods, systems, and portal using software containers for accelerating aspects of data analytics application development and deployment | |
JP7461471B2 (ja) | クロス・クラウド・オペレーションのためのクラウド・サービス | |
WO2020154194A1 (en) | Transformation configuration in instance data replication with bi-directional replication support | |
CN113971095A (zh) | 扩展进程中的kubernetes应用程序接口 | |
US12015613B2 (en) | Method and system for secure container application framework | |
WO2013075585A1 (zh) | 一种业务特性的管理系统和方法 | |
CN116457759A (zh) | 基于分布式容器组的系统内的服务编排 | |
CN113672338A (zh) | 城轨数据共享平台的搭建方法、装置和电子设备 | |
CN109218378B (zh) | 一种基于云平台的小型物流管理平台设计方法 | |
US20210182412A1 (en) | System and method for managing data object creation | |
CN116670670A (zh) | 用于基于容器的环境的集成认证 | |
US20240256250A1 (en) | Orchestration of upgrades of datacenters deployed in cloud platforms | |
US20230266996A1 (en) | Distributed ai platform mesh for machine learning workflows | |
Wang et al. | Developing a process in architecting microservice infrastructure with Docker, Kubernetes, and Istio | |
Acosta-Silva et al. | Exploiting network restricted compute resources with HTCondor: a CMS experiment experience | |
US12126622B2 (en) | Method and system for secure container application framework | |
US12045590B2 (en) | Lazy evaluation of supply chain policy based on transparency log attestations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |