CN115103012A - 一种地理空间信息微服务集成系统及方法 - Google Patents
一种地理空间信息微服务集成系统及方法 Download PDFInfo
- Publication number
- CN115103012A CN115103012A CN202211022301.5A CN202211022301A CN115103012A CN 115103012 A CN115103012 A CN 115103012A CN 202211022301 A CN202211022301 A CN 202211022301A CN 115103012 A CN115103012 A CN 115103012A
- Authority
- CN
- China
- Prior art keywords
- service
- information
- micro
- microservice
- module
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- 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/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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
- H04L67/1004—Server selection for load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种地理空间信息微服务集成系统及方法,所述系统包括服务注册与发现模块、服务负载均衡模块、服务框架加载模块、服务管理模块、服务通信模块、地理空间信息通用算法模块、服务框架组件代码生成模块、代码移植适配模块以及微服务打包装配模块,通过服务框架组件代码生成模块和代码移植适配模块向微服务开发者提供具有可移植性的代码框架,并通过地理空间信息通用算法模块向微服务开发者提供地面空间信息服务运行所需的通用算法类库,微服务开发者在进行微服务开发时,仅需编写简单的业务逻辑实现代码,即可达到微服务注册、调用和跨平台的特性,大大减轻了微服务开发者的工作量,提高了地理空间信息微服务的开发效率。
Description
技术领域
本发明属于电子信息技术领域,尤其涉及一种地理空间信息微服务集成系统及方法。
背景技术
以往的单体服务结构,采用整体式开发部署结构,服务功能耦合在一起,修改构建代价大,对于需要快速开发迭代,经常性在线更新升级服务的需求很难满足,也难以处理好服务资源与服务负载的平衡。同时地理空间信息服务系统面向用户量大,服务种类众多,计算处理量大,数据格式繁多、操作系统和硬件设备多样以及服务治理能力较为欠缺,包括不同应用场景需求的服务组件不一致、不同厂家不同显示场景下数据格式不一致等,这些对信息服务的处理和管理能力提出了很高要求,需要突破传统的集群式服务管理模式。
发明内容
本发明意在提供一种地理空间信息微服务集成系统及方法,以解决传统的集群式服务管理模式存在上述诸多不足的问题,本发明要解决的技术问题通过以下技术方案来实现:
本发明提供了一种地理空间信息微服务集成系统,所述系统包括:
服务注册发现模块,用于地理空间信息微服务的注册、地理空间信息微服务信息的主动分发以及地理空间信息微服务的发现,其中,所述地理空间信息微服务包括多个地理空间信息微服务组件;
一个或多个服务负载均衡模块,与所述服务注册发现模块连接,所述服务负载均衡模块用于将多个地理空间信息微服务组件组成集群,并在高并发压力下对多个地理空间信息服务组件进行负载均衡处理;
服务框架加载模块,与所述服务负载均衡模块连接,所述服务框架加载模块用于地理空间信息微服务组件的启动加载、服务上报以及服务注册表缓存;
服务管理模块,分别与所述服务注册发现模块、所述服务负载均衡模块以及所述服务框架加载模块连接,用于管理多个地理空间信息微服务组件的状态;
地理空间信息通用算法模块,用于封装地理空间信息的各类通用算法,为微服务开发者提供算法支持;
服务框架组件代码生成模块,用于为微服务开发者提供地理空间信息微服务组件代码生成,自动生成微服务注册、微服务发现、状态信息上报、基础类库加载和动态库生成脚本;
代码移植适配模块,用于为微服务开发者提供具有可移植性的代码类库;
服务打包装配模块,用于根据地理空间用户端的应用服务请求打包装配需要的地理空间信息微服务组件;
所述服务注册发现模块、所述服务负载均衡模块、所述服务框架加载模块、所述服务管理模块、所述地理空间信息通用算法模块、所述服务框架组件代码生成模块、所述代码移植适配模块以及所述服务打包装配模块通过服务通信模块与地理空间信息微服务组件之间进行通信。
优选地,所述服务注册发现模块包括:
地理空间信息微服务注册单元,用于接收所述地理空间信息微服务的服务上报,并发送地理空间信息微服务信息数据;
地理空间信息服务信息主动分发单元,用于向所述服务负载均衡模块和地理空间信息微服务主动分发已注册的地理空间信息微服务信息数据;
地理空间信息微服务发现单元,用于响应所述服务负载均衡模块和各微服务请求分配的已注册的地理空间信息微服务信息数据;
以及,地理空间信息微服务状态更新单元,用于感知地理空间信息微服务的在线和离线状态。
优选地,所述服务负载均衡模块包括:
任务调度单元,用于接收微服务调用请求,并将所述微服务调用请求按照设定的负载方式转发到对应可提供地理空间信息微服务的服务器;
负载策略单元,用于配置微服务请求转发策略,支持轮询策略、负载度策略、响应策略以及哈希策略;
以及,信息收集单元,用于主动或被动收集地理空间信息微服务所在服务器负载情况。
优选地,所述服务框架加载模块包括:
微服务信息读取单元,用于读取微服务开发者开发的地理空间信息微服务信息数据;
微服务信息注册单元,用于将地理空间信息微服务信息数据主动上报到所述服务注册发现模块;
微服务环境注册单元,用于将地理空间信息微服务所在服务器的环境信息上报到所述服务负载均衡模块;
基础库加载单元,用于创建微服务运行基础环境;
以及,服务发现单元,用于主动或被动获取缓存已注册地理空间信息微服务信息和动态感知地理空间信息微服务上下线情况信息。
优选地,所述服务管理模块包括:
状态数据收集单元,用于收集已注册地理空间信息微服务的上下线状态和策略设置的微服务状态;
微服务状态管理单元,用于随时改变已注册的地理空间信息微服务运行状态,所述运行状态包括开发运行提供服务、暂停提供服务、停止提供服务和异常预警;
流量管控单元,用于过滤微服务请求、负载配置和灰度发布;
日志管理单元,用于动态调整微服务日志记录策略,以实现对不同服务不同方法做细粒度日志管理;
请求记录单元,用于追踪微服务请求转发情况;
以及,转发管理单元,用于动态配置转发策略,以及调度任务分配加权。
优选地,所述服务通信模块包括:
消息队列单元,用于存储通信消息;
发布订阅单元,用于记录消息订阅信息;
基础通信封装单元,用于为一对一、一对多通信提供底层TCP和UDP协议封装接口;
以及,消息管理单元,用于接收地理空间信息微服务的任务执行状态和执行结果的消息通知。
优选地,所述微服务打包装配模块包括:
微服务集成配置单元,用于选择配置地理空间用户端的应用服务请求需要打包的地理空间信息微服务组件;
依赖检测单元,用于检测多个地理空间信息微服务组件之间的依赖关系,以及选择的配置地理空间信息微服务组件是否存在被依赖但未被选择的情况;
代码集成单元,用于根据选择的地理空间信息微服务组件拉取相应待编译代码和依赖类库;
集中编译单元,用于将拉去的待编译代码选择相应的编译文件进行编译以生成库文件;
以及,软件组装单元,用于根据库文件组装可运行的应用需求软件。
另一方面,本发明还提供了一种地理空间信息微服务集成方法,包括:
获取地理空间用户端发送的应用服务请求信息;
通过服务网关解析所述应用服务请求信息得到多个相应的服务任务,并将多个所述服务任务下发到多个不同的Web服务器上;
从地理空间信息服务注册中心集群获取可用已注册服务列表,针对每个所述服务任务从所述可用已注册服务列表中确定相应的多个地理空间信息微服务组件;
基于负载均衡策略从应用服务器中调用多个地理空间信息微服务组件以形成一个服务调用链,用以处理所述应用服务请求信息。
优选地,所述方法还包括:
微服务开发者依据服务规范、可移植性的代码框架、地面空间信息服务运行所需的通用算法类库开发出可运行在Web服务器下的服务实体;
使用容器化工具将所述服务实体连同Web服务器运行环境一起打包成地理空间信息基础服务容器并发布,以实现新的地理空间信息微服务组件的制作;
将发布后的地理空间信息基础服务容器注册到地理空间信息服务注册中心集群以使使用者知晓。
优选地,对于跨域的组合分析服务、业务逻辑复杂或特殊的服务,通过服务聚合器实现服务聚合和服务编排;
服务聚合可将没有依赖关系的服务并行聚合,使用统一化的接口进行输入输出,输入时将各接口参数转换为共同的接口参数,输出时将每个服务输出拼接为输出结果集输出;
服务编排对服务进行服务组合调用编排,根据业务模型需求指定服务容器的依赖关系,按顺序启动相应的服务容器,启动完毕后,将启动的服务节点加入到线上的服务中组成服务链,并注册发布为组合服务。
综上所述,本发明的一种地理空间信息微服务集成系统,提出了一种针对地面空间信息微服务发现、封装、管理、运行和通用集成框架系统,该系统包括服务注册与发现模块、服务负载均衡模块、服务框架加载模块、服务管理模块、服务通信模块、地理空间信息通用算法模块、服务框架组件代码生成模块、代码移植适配模块以及微服务打包装配模块,通过服务框架组件代码生成模块和代码移植适配模块向微服务开发者提供了具有可移植性的代码框架,并通过地理空间信息通用算法模块向微服务开发者提供了地面空间信息服务运行所需的通用算法类库,微服务开发者在进行微服务开发时,仅需编写简单的业务逻辑实现代码,即可达到微服务注册、调用和跨平台的特性,从而大大减轻了微服务开发者的工作量,使得微服务开发者专注于业务逻辑处理,无需考虑服务间的复杂度,提高了地理空间信息微服务的开发效率。
附图说明
图1为本发明的一种地理空间信息微服务集成系统的一些实施例的结构示意图;
图2为本发明的一种地理空间信息微服务集成方法的一些实施例的流程示意图;
图3为地理空间信息微服务管理框架流程示意图;
图4为服务定制与注册框架示意图;
图5为服务聚合架构示意图;
图6为服务聚合示意图;
图7为在线应用服务架构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
参见图1所示,本发明实施例提供了一种地理空间信息微服务集成系统,系统包括:
服务注册发现模块,用于地理空间信息微服务的注册、地理空间信息微服务信息的主动分发以及地理空间信息微服务的发现,其中,地理空间信息微服务包括多个地理空间信息微服务组件;
本实施例中通过服务注册发现模块实现各微服务组件间发现其他可用组件的功能。
一个或多个服务负载均衡模块,与服务注册发现模块连接,服务负载均衡模块用于将多个地理空间信息微服务组件组成集群,并在高并发压力下对多个地理空间信息服务组件进行负载均衡处理;
本实施例中服务负载均衡模块提供地理空间信息微服务组件负载均衡功能,将各微服务组件组成集群,保证在高并发压力下的微服务可扩展性和稳定性。微服务开发者无需编写任何代码即可具备负载均衡能力。
服务框架加载模块,与服务负载均衡模块连接,服务框架加载模块用于地理空间信息微服务组件的启动加载、服务上报以及服务注册表缓存;
服务管理模块,分别与服务注册发现模块、服务负载均衡模块以及服务框架加载模块连接,用于管理多个地理空间信息微服务组件的状态;
本实施例中,地理空间信息微服务组件的状态包括开始运行、暂停、停止、调度任务分配加权等。
地理空间信息通用算法模块,用于封装地理空间信息的各类通用算法,为微服务开发者提供算法支持;
本实施例中地理空间信息通用算法模块不仅为微服务开发者提供算法支持,同时支持可插拔式算法拓展。
服务框架组件代码生成模块,用于为微服务开发者提供地理空间信息微服务组件代码生成,自动生成微服务注册、微服务发现、状态信息上报、基础类库加载和动态库生成脚本;
本实施例中服务框架组件代码生成模块用于为地理空间信息微服务开发者提供微服务框架组件代码生成,自动生成微服务注册、其他微服务发现、状态信息上报、基础类库加载和动态库生成脚本等标准代码,大大简化地理空间信息微服务开发者开发难度。
代码移植适配模块,用于为微服务开发者提供具有可移植性的代码类库;
本实施例中代码移植适配模块提供的代码类库可跨操作系统和硬件编程。
服务打包装配模块,用于根据地理空间用户端的应用服务请求打包装配需要的地理空间信息微服务组件;
本实施例中服务打包装配模块根据应用需求打包装配需要的微服务模块,达到可自由装配的效果,并具有模块依赖检测功能。
服务注册发现模块、服务负载均衡模块、服务框架加载模块、服务管理模块、地理空间信息通用算法模块、服务框架组件代码生成模块、代码移植适配模块以及服务打包装配模块通过服务通信模块与地理空间信息微服务组件之间进行通信。
本发明实施例技术方案要解决的技术问题是针对相关技术中,地理空间信息服务需求复杂多样、数据格式繁多、操作系统和硬件设备多样以及服务治理能力较为欠缺等问题,包括不同应用场景需求的服务组件不一致、不同厂家不同显示场景下数据格式不一致等。本发明实施例的一种地理空间信息微服务集成系统,提出一种针对地面空间信息微服务发现、封装、管理、运行和通用集成框架系统,该系统包括服务注册与发现模块、服务负载均衡模块、服务框架加载模块、服务管理模块、服务通信模块、地理空间信息通用算法模块、服务框架组件代码生成模块、代码移植适配模块以及微服务打包装配模块,通过服务框架组件代码生成模块和代码移植适配模块向微服务开发者提供了具有可移植性的代码框架,并通过地理空间信息通用算法模块向微服务开发者提供了地面空间信息服务运行所需的通用算法类库,微服务开发者在进行微服务开发时,仅需编写简单的业务逻辑实现代码,即可达到微服务注册、调用和跨平台的特性,从而大大减轻了微服务开发者的工作量,使得微服务开发者专注于业务逻辑处理,无需考虑服务间的复杂度,提高了地理空间信息微服务的开发效率。
在一些实施例中,本发明的地理空间信息微服务集成系统中服务注册发现模块包括:
地理空间信息微服务注册单元,用于接收地理空间信息微服务的服务上报,并发送地理空间信息微服务信息数据;
地理空间信息服务信息主动分发单元,用于向服务负载均衡模块和地理空间信息微服务主动分发已注册的地理空间信息微服务信息数据;
地理空间信息微服务发现单元,用于响应服务负载均衡模块和各微服务请求分配的已注册的地理空间信息微服务信息数据;
以及,地理空间信息微服务状态更新单元,用于感知地理空间信息微服务的在线和离线状态。
在一些实施例中,本发明的地理空间信息微服务集成系统中服务负载均衡模块包括:
任务调度单元,用于接收微服务调用请求,并将微服务调用请求按照设定的负载方式转发到对应可提供地理空间信息微服务的服务器,用以实现外界或微服务间的调用;
负载策略单元,用于配置微服务请求转发策略,支持轮询策略、负载度策略、响应策略以及哈希策略;
以及,信息收集单元,用于主动或被动收集地理空间信息微服务所在服务器负载情况,包括CPU、内存、磁盘负载信息和收集请求响应速度信息等。
在一些实施例中,本发明的地理空间信息微服务集成系统中服务框架加载模块包括:
微服务信息读取单元,用于读取微服务开发者开发的地理空间信息微服务信息数据;
微服务信息注册单元,用于将地理空间信息微服务信息数据主动上报到服务注册发现模块;
微服务环境注册单元,用于将地理空间信息微服务所在服务器的环境信息上报到服务负载均衡模块,包括服务器属性信息、服务器使用情况信息等;
基础库加载单元,用于创建微服务运行基础环境,包括建立服务通信链接、加载基础服务库等;
以及,服务发现单元,用于主动或被动获取缓存已注册地理空间信息微服务信息和动态感知地理空间信息微服务上下线情况信息。
在一些实施例中,本发明的地理空间信息微服务集成系统中服务管理模块包括:
状态数据收集单元,用于收集已注册地理空间信息微服务的上下线状态和策略设置的微服务状态;
微服务状态管理单元,用于随时改变已注册的地理空间信息微服务运行状态,运行状态包括开发运行提供服务、暂停提供服务、停止提供服务和异常预警;
流量管控单元,用于过滤微服务请求、负载配置和灰度发布;
日志管理单元,用于动态调整微服务日志记录策略,以实现对不同服务不同方法做细粒度日志管理;
请求记录单元,用于追踪微服务请求转发情况,可具体追踪到请求次数、响应时间、转发服务器信息和流量信息等;
以及,转发管理单元,用于动态配置转发策略,以及调度任务分配加权。
在一些实施例中,本发明的地理空间信息微服务集成系统中服务通信模块包括:
消息队列单元,用于存储通信消息;
发布订阅单元,用于记录消息订阅信息;
基础通信封装单元,用于为一对一、一对多通信提供底层TCP和UDP协议封装接口;
以及,消息管理单元,用于接收地理空间信息微服务的任务执行状态和执行结果的消息通知。
在一些实施例中,本发明的地理空间信息微服务集成系统中微服务打包装配模块包括:
微服务集成配置单元,用于选择配置地理空间用户端的应用服务请求需要打包的地理空间信息微服务组件;
依赖检测单元,用于检测多个地理空间信息微服务组件之间的依赖关系,以及选择的配置地理空间信息微服务组件是否存在被依赖但未被选择的情况;
代码集成单元,用于根据选择的地理空间信息微服务组件拉取相应待编译代码和依赖类库;
集中编译单元,用于将拉去的待编译代码选择相应的编译文件进行编译以生成库文件;
以及,软件组装单元,用于根据库文件组装可运行的应用需求软件。
另一方面,参见图2所示,本发明还提供了一种地理空间信息微服务集成方法,包括:
步骤100:获取地理空间用户端发送的应用服务请求信息;
步骤200:通过服务网关解析应用服务请求信息得到多个相应的服务任务,并将多个服务任务下发到多个不同的Web服务器上;
步骤300:从地理空间信息服务注册中心集群获取可用已注册服务列表,针对每个服务任务从可用已注册服务列表中确定相应的多个地理空间信息微服务组件;
步骤400:基于负载均衡策略从应用服务器中调用多个地理空间信息微服务组件以形成一个服务调用链,用以处理应用服务请求信息。
本发明实施例的一种地理空间信息微服务集成方法中地理空间信息微服务管理框架如图3所示,地理空间用户端的请求进来以后,通过代理服务网关将任务下发到不同的Web服务上去(可以理解为服务消费者,服务消费者也可以作为服务提供者进行任务注册)。Web服务通过注册中心获取到注册到系统中可用的服务列表,进行过滤,并采用适当的负载均衡策略调用依赖的其他应用服务(可以理解为服务提供者),形成一个服务调用链来处理用户端的请求。通过高可用微服务注册与发行机制、客户端负载均衡策略、容错处理、分布式高可用微服务网关设计、基于消息总线的动态分布式配置中心、微服务跟踪、基于流式并行处理框架的分布式日志中心等技术构建地理空间信息微服务管理框架。采用无状态服务(如果一个数据需要被多个服务共享,才能完成一笔交易,那么这个数据被称为状态。依赖这个状态数据的服务称为有状态服务,反之是无状态服务)设计的标准进行拆分,将业务中需要的数据缓存,session缓存等迁移到分布式缓存中存储,让业务服务变成一个无状态的计算节点。这样能够做到按需动态伸缩,微服务应用在运行时动态增删节点,就不用考虑缓存数据如何同步的问题。
本实施例采用微服务实现地理空间信息服务架构,将整体式结构按功能点拆分为独立的微服务,并采用虚拟容器化管理,服务无状态,系统低耦合,服务可独立部署更新,资源可根据服务要求单独调配,实现微服务任务下达、服务定制与注册、服务协同管理、在线服务、服务集成、服务的聚合、服务链的构建、服务模型定制等服务管理能力,并根据任务提供预置的服务定制模型,能实时检测服务运行状态,事务执行结果,提供服务容错、自动恢复已损毁的服务等能力,并采用多级服务调度技术,经过多级调度分发和负载均衡,将服务合理分布到相应的服务节点上,极大减缓终端处理服务器的压力。
在一些实施例中,本发明的地理空间信息微服务集成方法还包括:
微服务开发者依据服务规范、可移植性的代码框架、地面空间信息服务运行所需的通用算法类库开发出可运行在Web服务器下的服务实体;
使用容器化工具将服务实体连同Web服务器运行环境一起打包成地理空间信息基础服务容器并发布,以实现新的地理空间信息微服务组件的制作;
将发布后的地理空间信息基础服务容器注册到地理空间信息服务注册中心集群以使使用者知晓。
参见图4所示,本实施例中服务的制作需要根据服务规范,使用改造传统服务或开发新服务的方式,开发出可运行在Web服务器下的服务实体,然后使用docker容器化工具,将该服务连同Web服务器运行环境一起打包成服务容器,然后发布到微服务管理框架中进行编排。设置服务容器的各项描述参数,服务集群需要的副本数等,服务管理框架针对服务器主机集群做管理,每个容器会根据需要的资源和主机资源实际情况将容器及容器副本发送到相应的主机上,对于使用者而言,这一过程是透明的。服务发布后会生成对外访问的集群地址和访问域名。
服务发布后需要在服务注册中心注册以使使用者知晓。服务注册功能提供向单中心、全系统多中心(全局)的注册功能,注册后的服务可根据业务和权限向用户公开,用户可通过服务目录和服务检索系统发现需要的服务。服务定制与注册子系统把服务定制与注册信息存储在分布式存储组织分系统的对应结构化表格中,向服务协同与在线服务分系统发送服务更新的通知消息,并向公共信息服务中心进行服务注册发布。
服务注册发布后,用户即可查看发布的服务并使用,但微服务体系下服务规模较为庞大,本系统支持超过100种服务,用户可根据不同的数据针对性制作自己需要的同类服务,服务制作发布规模应能达到上千,故需提供快捷易用的智能检索子系统,使用户可以快速发现自己关注的服务。
微服务管理框架可针对地理信息服务、气象水文服务等几大类服务建立微服务容器集,每个服务可根据需要建立服务副本,服务副本用于负载均衡调度或错误恢复,由服务框架根据需要动态调度,一个服务可以在不需要时下线,也可能应对临时访问压力增加新的服务节点,做到动态扩缩容。
每个微服务可独立向用户提供基本服务,微服务按业务特点,分为地理数据服务、地理分析服务、地理显示服务等。
在一些实施例中,本发明的地理空间信息微服务集成方法中对于跨域的组合分析服务、业务逻辑复杂或特殊的服务,通过服务聚合器实现服务聚合和服务编排;
服务聚合可将没有依赖关系的服务并行聚合,使用统一化的接口进行输入输出,输入时将各接口参数转换为共同的接口参数,输出时将每个服务输出拼接为输出结果集输出;
服务编排对服务进行服务组合调用编排,根据业务模型需求指定服务容器的依赖关系,按顺序启动相应的服务容器,启动完毕后,将启动的服务节点加入到线上的服务中组成服务链,并注册发布为组合服务。
参见图5-6所示,地理信息基础服务容器制作好后,可以直接发布注册基础服务。对于跨域的组合分析服务,可使用服务组合的方式生成。对于业务逻辑较复杂或特殊的服务,需要开发人员根据服务开发制作的流程进行组合服务的开发。对于一些较常用的、需求较确定的业务,可以按一定规则提供图形化服务聚合器实现服务聚合。
服务聚合器实现服务聚合和编排能力。服务聚合可将没有依赖关系的服务并行聚合,使用统一化的接口进行输入输出,输入时将各接口参数转换为共同的接口参数,输出时将每个服务输出拼接为输出结果集输出。服务编排则对服务进行服务组合调用编排,根据业务模型需求指定服务容器的依赖关系,按顺序启动相应的服务容器,启动完毕后,将启动的服务节点加入到线上的服务中组成服务链,然后注册发布为组合服务,这需要将服务接口规范化,使服务之间具备可调用性,用户可将一个服务的输出结果或者输出结果的一部分指定为下个服务的输入参数。
例如:需要查出在某个地域内能见度在一定标准以上的电子目标威胁情况,这个功能需要空间查询服务、能见度分析服务、电子目标威胁分析服务共同完成。把服务通过聚合器编排在一起后,按顺序启动三个服务,并加入到线上,然后发布为一种跨域决策分析服务。
参见图7所示,服务的实际工作由在线服务组件完成,工作的基本单元是微服务容器,微服务容器由服务组件、Web服务容器与应用服务容器组成,多个服务容器组成构成高可靠、高可用、可扩展的在线应用服务集群。
面向用户的服务由Web服务容器提供,Web服务集群软件主要负责提供高速地图瓦片服务等Web服务。这些服务有的提供计算量大的分析服务、有的提供访问量大的瓦片显示服务,根据服务的要求,为满足不同形态的服务,该软件主要由3类服务器组成:由若干地图Web服务构成的基础Web服务器群软件、由若干瓦片服务器组成的瓦片服务器群软件、由若干流媒体服务器组成的流媒体服务器软件。
应用服务集群软件主要负责实现应用服务组件管理和集群管理控制等功能,还配合微服务框架的内部调度器进行地理空间信息服务负载均衡管理。主要由应用服务器、集群管理控制器组成。
服务组件主要负责具体实现各类战场环境数据服务、计算服务、分析服务等。不同的服务由于形态、功能、用途不同,在用户量、访问频率和对服务资源的消耗上存在区别,因此在服务的调度上需要采用相应的调度和负载均衡策略。服务协同调度提供三级服务负载均衡,DNS域名智能负载均衡、网关级负载均衡和内部负载均衡。
应该指出,上述详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语均具有与本申请所属技术领域的普通技术人员的通常理解所相同的含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请所述的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便这里描述的本申请的实施方式能够以除了在这里图示或描述的那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为了便于描述,在这里可以使用空间相对术语,如“在……之上”、“在……上方”、“在……上表面”、“上面的”等,用来描述如在图中所示的一个器件或特征与其他器件或特征的空间位置关系。应当理解的是,空间相对术语旨在包含除了器件在图中所描述的方位之外的在使用或操作中的不同方位。例如,如果附图中的器件被倒置,则描述为“在其他器件或构造上方”或“在其他器件或构造之上”的器件之后将被定位为“在其他器件或构造下方”或“在其他器件或构造之下”。因而,示例性术语“在……上方”可以包括“在……上方”和“在……下方”两种方位。该器件也可以其他不同方式定位,如旋转90度或处于其他方位,并且对这里所使用的空间相对描述作出相应解释。
在上面详细的说明中,参考了附图,附图形成本文的一部分。在附图中,类似的符号典型地确定类似的部件,除非上下文以其他方式指明。在详细的说明书、附图及权利要求书中所描述的图示说明的实施方案不意味是限制性的。在不脱离本文所呈现的主题的精神或范围下,其他实施方案可以被使用,并且可以作其他改变。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种地理空间信息微服务集成系统,其特征在于,所述系统包括:
服务注册发现模块,用于地理空间信息微服务的注册、地理空间信息微服务信息的主动分发以及地理空间信息微服务的发现,其中,所述地理空间信息微服务包括多个地理空间信息微服务组件;
一个或多个服务负载均衡模块,与所述服务注册发现模块连接,所述服务负载均衡模块用于将多个地理空间信息微服务组件组成集群,并在高并发压力下对多个地理空间信息服务组件进行负载均衡处理;
服务框架加载模块,与所述服务负载均衡模块连接,所述服务框架加载模块用于地理空间信息微服务组件的启动加载、服务上报以及服务注册表缓存;
服务管理模块,分别与所述服务注册发现模块、所述服务负载均衡模块以及所述服务框架加载模块连接,用于管理多个地理空间信息微服务组件的状态;
地理空间信息通用算法模块,用于封装地理空间信息的各类通用算法,为微服务开发者提供算法支持;
服务框架组件代码生成模块,用于为微服务开发者提供地理空间信息微服务组件代码生成,自动生成微服务注册、微服务发现、状态信息上报、基础类库加载和动态库生成脚本;
代码移植适配模块,用于为微服务开发者提供具有可移植性的代码类库;
服务打包装配模块,用于根据地理空间用户端的应用服务请求打包装配需要的地理空间信息微服务组件;
所述服务注册发现模块、所述服务负载均衡模块、所述服务框架加载模块、所述服务管理模块、所述地理空间信息通用算法模块、所述服务框架组件代码生成模块、所述代码移植适配模块以及所述服务打包装配模块通过服务通信模块与地理空间信息微服务组件之间进行通信。
2.根据权利要求1所述的地理空间信息微服务集成系统,其特征在于,所述服务注册发现模块包括:
地理空间信息微服务注册单元,用于接收所述地理空间信息微服务的服务上报,并发送地理空间信息微服务信息数据;
地理空间信息服务信息主动分发单元,用于向所述服务负载均衡模块和地理空间信息微服务主动分发已注册的地理空间信息微服务信息数据;
地理空间信息微服务发现单元,用于响应所述服务负载均衡模块和各微服务请求分配的已注册的地理空间信息微服务信息数据;
以及,地理空间信息微服务状态更新单元,用于感知地理空间信息微服务的在线和离线状态。
3.根据权利要求1所述的地理空间信息微服务集成系统,其特征在于,所述服务负载均衡模块包括:
任务调度单元,用于接收微服务调用请求,并将所述微服务调用请求按照设定的负载方式转发到对应可提供地理空间信息微服务的服务器;
负载策略单元,用于配置微服务请求转发策略,支持轮询策略、负载度策略、响应策略以及哈希策略;
以及,信息收集单元,用于主动或被动收集地理空间信息微服务所在服务器负载情况。
4.根据权利要求1所述的地理空间信息微服务集成系统,其特征在于,所述服务框架加载模块包括:
微服务信息读取单元,用于读取微服务开发者开发的地理空间信息微服务信息数据;
微服务信息注册单元,用于将地理空间信息微服务信息数据主动上报到所述服务注册发现模块;
微服务环境注册单元,用于将地理空间信息微服务所在服务器的环境信息上报到所述服务负载均衡模块;
基础库加载单元,用于创建微服务运行基础环境;
以及,服务发现单元,用于主动或被动获取缓存已注册地理空间信息微服务信息和动态感知地理空间信息微服务上下线情况信息。
5.根据权利要求1所述的地理空间信息微服务集成系统,其特征在于,所述服务管理模块包括:
状态数据收集单元,用于收集已注册地理空间信息微服务的上下线状态和策略设置的微服务状态;
微服务状态管理单元,用于随时改变已注册的地理空间信息微服务运行状态,所述运行状态包括开发运行提供服务、暂停提供服务、停止提供服务和异常预警;
流量管控单元,用于过滤微服务请求、负载配置和灰度发布;
日志管理单元,用于动态调整微服务日志记录策略,以实现对不同服务不同方法做细粒度日志管理;
请求记录单元,用于追踪微服务请求转发情况;
以及,转发管理单元,用于动态配置转发策略,以及调度任务分配加权。
6.根据权利要求1所述的地理空间信息微服务集成系统,其特征在于,所述服务通信模块包括:
消息队列单元,用于存储通信消息;
发布订阅单元,用于记录消息订阅信息;
基础通信封装单元,用于为一对一、一对多通信提供底层TCP和UDP协议封装接口;
以及,消息管理单元,用于接收地理空间信息微服务的任务执行状态和执行结果的消息通知。
7.根据权利要求1所述的地理空间信息微服务集成系统,其特征在于,所述微服务打包装配模块包括:
微服务集成配置单元,用于选择配置地理空间用户端的应用服务请求需要打包的地理空间信息微服务组件;
依赖检测单元,用于检测多个地理空间信息微服务组件之间的依赖关系,以及选择的配置地理空间信息微服务组件是否存在被依赖但未被选择的情况;
代码集成单元,用于根据选择的地理空间信息微服务组件拉取相应待编译代码和依赖类库;
集中编译单元,用于将拉去的待编译代码选择相应的编译文件进行编译以生成库文件;
以及,软件组装单元,用于根据库文件组装可运行的应用需求软件。
8.一种地理空间信息微服务集成方法,其特征在于,包括:
获取地理空间用户端发送的应用服务请求信息;
通过服务网关解析所述应用服务请求信息得到多个相应的服务任务,并将多个所述服务任务下发到多个不同的Web服务器上;
从地理空间信息服务注册中心集群获取可用已注册服务列表,针对每个所述服务任务从所述可用已注册服务列表中确定相应的多个地理空间信息微服务组件;
基于负载均衡策略从应用服务器中调用多个地理空间信息微服务组件以形成一个服务调用链,用以处理所述应用服务请求信息。
9.根据权利要求8所述的地理空间信息微服务集成方法,其特征在于,所述方法还包括:
微服务开发者依据服务规范、可移植性的代码框架、地面空间信息服务运行所需的通用算法类库开发出可运行在Web服务器下的服务实体;
使用容器化工具将所述服务实体连同Web服务器运行环境一起打包成地理空间信息基础服务容器并发布,以实现新的地理空间信息微服务组件的制作;
将发布后的地理空间信息基础服务容器注册到地理空间信息服务注册中心集群以使使用者知晓。
10.根据权利要求9所述的地理空间信息微服务集成方法,其特征在于,对于跨域的组合分析服务、业务逻辑复杂或特殊的服务,通过服务聚合器实现服务聚合和服务编排;
服务聚合可将没有依赖关系的服务并行聚合,使用统一化的接口进行输入输出,输入时将各接口参数转换为共同的接口参数,输出时将每个服务输出拼接为输出结果集输出;
服务编排对服务进行服务组合调用编排,根据业务模型需求指定服务容器的依赖关系,按顺序启动相应的服务容器,启动完毕后,将启动的服务节点加入到线上的服务中组成服务链,并注册发布为组合服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211022301.5A CN115103012B (zh) | 2022-08-25 | 2022-08-25 | 一种地理空间信息微服务集成系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211022301.5A CN115103012B (zh) | 2022-08-25 | 2022-08-25 | 一种地理空间信息微服务集成系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115103012A true CN115103012A (zh) | 2022-09-23 |
CN115103012B CN115103012B (zh) | 2022-11-01 |
Family
ID=83301400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211022301.5A Active CN115103012B (zh) | 2022-08-25 | 2022-08-25 | 一种地理空间信息微服务集成系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115103012B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024067155A1 (zh) * | 2022-09-30 | 2024-04-04 | 中电信数智科技有限公司 | 通过编排方式解决微服务外部依赖复杂性的系统及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170237778A1 (en) * | 2016-02-11 | 2017-08-17 | CYBRIC Inc. | Continuous security delivery fabric |
CN107102847A (zh) * | 2016-02-23 | 2017-08-29 | 中国水电工程顾问集团有限公司 | 基于微服务的软件开发方法、装置及系统 |
CN110099099A (zh) * | 2019-03-28 | 2019-08-06 | 中国电子科技集团公司电子科学研究院 | 针对地面信息港的空间信息微服务封装及服务集成方法 |
CN111414187A (zh) * | 2020-03-25 | 2020-07-14 | 中国电子科技集团公司电子科学研究院 | 服务集成开放平台及空间信息应用方法 |
CN111736827A (zh) * | 2020-08-25 | 2020-10-02 | 长沙慧码至一信息科技有限公司 | 一种云原生开发组件系统 |
CN112199105A (zh) * | 2020-10-15 | 2021-01-08 | 舟山网脉科技有限公司 | 功能组合式软件开发的方法、系统、介质及电子设备 |
-
2022
- 2022-08-25 CN CN202211022301.5A patent/CN115103012B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170237778A1 (en) * | 2016-02-11 | 2017-08-17 | CYBRIC Inc. | Continuous security delivery fabric |
CN107102847A (zh) * | 2016-02-23 | 2017-08-29 | 中国水电工程顾问集团有限公司 | 基于微服务的软件开发方法、装置及系统 |
CN110099099A (zh) * | 2019-03-28 | 2019-08-06 | 中国电子科技集团公司电子科学研究院 | 针对地面信息港的空间信息微服务封装及服务集成方法 |
CN111414187A (zh) * | 2020-03-25 | 2020-07-14 | 中国电子科技集团公司电子科学研究院 | 服务集成开放平台及空间信息应用方法 |
CN111736827A (zh) * | 2020-08-25 | 2020-10-02 | 长沙慧码至一信息科技有限公司 | 一种云原生开发组件系统 |
CN112199105A (zh) * | 2020-10-15 | 2021-01-08 | 舟山网脉科技有限公司 | 功能组合式软件开发的方法、系统、介质及电子设备 |
Non-Patent Citations (3)
Title |
---|
冯志勇等: "微服务技术发展的现状与展望", 《计算机研究与发展》 * |
崔蔚等: "面向微服务的统一应用开发平台", 《电力信息与通信技术》 * |
辛园园等: "微服务体系结构实现框架综述", 《计算机工程与应用》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024067155A1 (zh) * | 2022-09-30 | 2024-04-04 | 中电信数智科技有限公司 | 通过编排方式解决微服务外部依赖复杂性的系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN115103012B (zh) | 2022-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Aksakalli et al. | Deployment and communication patterns in microservice architectures: A systematic literature review | |
CN108965468B (zh) | 区块链网络服务平台及其链码安装方法、存储介质 | |
US7062516B2 (en) | Methods, systems, and articles of manufacture for implementing a runtime logging service storage infrastructure | |
CN109189334B (zh) | 一种区块链网络服务平台及其扩容方法、存储介质 | |
CN112099918A (zh) | 容器化环境中的集群的实时迁移 | |
US7287179B2 (en) | Autonomic failover of grid-based services | |
CN102868736B (zh) | 一种云计算监控框架设计及实现方法及云计算处理设备 | |
US8104038B1 (en) | Matching descriptions of resources with workload requirements | |
CN106663033B (zh) | 在事务中间件机器环境支持绕域和代理模型并更新服务信息以跨域消息传送的系统和方法 | |
CN111143054B (zh) | 一种异构国产cpu资源融合管理方法 | |
CN112667362B (zh) | Kubernetes上部署Kubernetes虚拟机集群的方法与系统 | |
JP2012053878A (ja) | 実行プログラムによる非ローカルブロックデータストレージへの信頼性の高いアクセスの実現 | |
CN113971095A (zh) | 扩展进程中的kubernetes应用程序接口 | |
Hackmann et al. | Agimone: Middleware support for seamless integration of sensor and ip networks | |
CN115103012B (zh) | 一种地理空间信息微服务集成系统及方法 | |
Pianese et al. | Toward a cloud operating system | |
CN115086166B (zh) | 计算系统、容器网络配置方法及存储介质 | |
US20210224102A1 (en) | Characterizing operation of software applications having large number of components | |
Iyer et al. | Extending android application programming framework for seamless cloud integration | |
CN103067507A (zh) | 互联网云计算资源虚拟化封装系统及方法 | |
Paidiparthy | EdgeFn: A Lightweight Customizable Data Store for Serverless Edge Computing | |
CN114640610B (zh) | 基于云原生的服务治理方法、装置及存储介质 | |
CN116578413B (zh) | 一种基于云+端架构的信号级仿真模型云化方法 | |
Blasi et al. | A Minicloud Specification Enabling the Federation of Heterogeneous Edge Resources for Latency Sensitive Applications' Requirements | |
Kratzke | A Brief History of Cloud Application Architectures: From Deployment Monoliths via Microservices to Serverless Architectures and Possible Roads Ahead |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |