机动边缘信息服务系统的服务抗毁接替方法与流程

文档序号:22581574发布日期:2020-10-20 17:04阅读:455来源:国知局
机动边缘信息服务系统的服务抗毁接替方法与流程

本发明涉及一种机动边缘信息服务系统的服务抗毁接替方法。



背景技术:

在现代信息化条件下,抗毁性作为新一代信息系统效能的一个重要指标,对其进行研究评估分析是十分具有意义和价值的。信息系统数据抗毁性评估研究也是现在相关领域比较热门的研究方向,其对现代化信息建设具有很大的意义。

国外对抗毁接替的研究开始于20世纪90年代,主要集中于各大科研机构和ibm、emc、赛门铁克、惠普等大型it企业。其中代表性的商业产品包括赛门铁克的veritasglobalclustermanager、veriatsclusterserver等,ibm的hageo、xrc等,惠普的mc/serviceguard以及emc的srdf等。这些具有代表性的产品和解决方案针对不同行业和单位的需求都有各自的亮点和优势,它们几乎都是基于iscsi技术、fc技术以及远程复制技术,虽然产品的性能很强大,功能也比较齐全,然而部署这样一套完整的抗毁接替系统需配置专用的光纤链路,而光纤链路价格非常高,所以实施上述远程抗毁接替系统需要有非常大的投入,并且数据生产中心和远程抗毁接替中心之间所间隔的距离相当有限,如果距离太远会导致成本的急剧增加,距离太短又无法达到远程抗毁接替的目的,所以一般将10公里作为系统部署标准。此外,这些抗毁接替产品都被集成在各家公司的硬件设备上,所以在灵活度、软硬件通用性方面都存在一定缺陷。

在战术机动作战环境下,通常网络通信带宽较低或不稳定、机动边缘信息服务节点失效等原因会导致服务无法可靠运行,而抗毁接替技术是解决这个问题的关键。战术环境中,节点内的服务器的稳定性无法得到全面可靠的保证,网络波动、服务器宕机等问题都将导致服务实例无法正常访问,给用户造成较差的体验;因此需要在节点内采用某些策略来实现用户无感的服务抗毁接替,即解决服务质量(qos)问题。



技术实现要素:

本发明的目的是提供一种机动边缘信息服务系统的服务抗毁接替方法,适用于战术环境下,解决当网络波动、服务器宕机等问题导致服务无法正常访问的问题。

为了解决上述技术问题,本发明提供一种机动边缘信息服务系统的服务抗毁接替方法,在机动边缘信息服务网络中,通过虚拟全连接通信链路连接部署多个机动边缘服务中心,且机动边缘信息服务中心互为备份关系;当客户端连接某个机动边缘信息服务中心,且目标服务不在该机动边缘信息服务中心时,该机动边缘信息服务中心通过代理向目标所在的机动边缘信息服务中心发起访问请求,此时客户端采用代理模式访问该服务;多个机动边缘信息服务中心间通过无中心的数据同步机制进行服务目录同步。

进一步地,当其中1个机动边缘信息服务中心被摧毁时,它将无法继续与其他机动边缘信息服务中心进行数据同步,其他机动边缘信息服务中心进行服务目录同步;被摧毁的机动边缘信息服务中心上的服务通过跨中心的服务管理系统调度到其他机动边缘信息服务中心的其中一个上接替。

进一步地,所述无中心的数据同步机制具体为:每个机动边缘信息服务中心都通过数据库记录同步消息的状态,每一条数据至少包含这些字段:源机动边缘信息服务中心和目标机动边缘信息服务中心的ip地址信息、同步数据的信息、数据的处理标志位、数据创建的时间和同步的操作类型。

进一步地,所述服务管理系统包括:

服务注册模块,负责接收机动边缘信息服务中心内各个机动边缘信息服务节点向其注册当前本节点上正在运行的服务实例信息,各个机动边缘信息服务节点定期向服务注册模块报告本机动边缘信息服务节点上的服务实例信息,注册模块在接收到相关信息后对机动边缘信息服务节点内的服务实例情况进行统计处理,并提供给服务管理系统的其他模块;如果机动边缘信息服务中心内的某个机动边缘信息服务节点由于网络或其他原因超过一定的时限没有向服务注册模块更新信息,则服务注册模块会标记该机动边缘信息服务节点为下线,并将该机动边缘信息服务节点上的服务实例通过服务中心重新调度到其他机动边缘信息服务节点上运行;

服务监控模块,负责监控节点上各个服务实例的运行状态,主要是各个服务实例对资源的消耗情况,机动边缘信息服务节点在启动后向服务监控模块汇报本节点上不同类型的资源总量,并在节点资源总量发生变化时进行更新;同时,机动边缘信息服务节点会定期统计运行在其上的服务实例的相关资源使用情况并汇报给服务监控模块,服务监控模块在收集到节点内的资源信息后会进行统计处理,用户可通过服务监控模块发布的服务查看到当前中心的资源使用详情;

服务管理模块,负责管理节点内正在运行的服务实例,它根据服务实例的注册和监控信息,动态更新服务的部署信息,并通过容器完成服务的提交更新;服务管理模块通过这种方式来动态管理服务实例的数量。

更进一步地,所述服务管理模块通过计算发现当前某服务的各个实例的访问请求数量较高,通过计算后,为该服务增加一个实例,并将更新信息提交给容器,容器接收到更新请求后在节点内选择一个节点新增服务实例,新增服务实例在启动后向服务注册模块注册。

进一步地,每个机动边缘信息服务中心都设置有自动切换机制,通过监控机动边缘信息服务系统中所有边缘机动信息服务中心的状态,在本地的机动边缘信息服务中心出现故障或毁坏瘫痪时通过手动切换或自动切换的方式,将服务切换至其他机动边缘信息服务中心。

进一步地,每个机动边缘信息服务中心还实时监控本地系统状态,在本地的机动边缘信息服务中心正常时,由本地边缘机动信息服务中心提供服务;当本地边缘机动信息服务中心出现故障或毁坏瘫痪时,将服务切换到远端的其他边缘机动信息服务中心提供服务;当本地的机动边缘信息服务中心故障排除后,重新切换为由本地机动边缘信息服务中心提供服务。

根据上述技术方案,本发明揭露的机动边缘信息服务系统的服务抗毁接替方法,实现了在战术网络环境中,当机动边缘信息服务节点故障或被摧毁时,将服务切换到其他机动边缘信息服务中心的节点,在接替节点启动相应服务,实现服务能力与状态的恢复。

附图说明

图1是根据本发明的基于发布订阅的数据同步原理示意图。

图2是根据本发明的数据同步模型结构图。

具体实施方式

下面结合附图和实施例对本发明作进一步说明。

本方面机动边缘信息服务系统的服务抗毁接替方法,其设计思想如下:

1)在应用层面上,一个机动边缘信息服务系统(譬如军事信息系统)形成一个自组网络簇,信息系统中所提供的服务,被部署在这个自组网中的若干个服务节点之上,每个节点可以部署若干个服务,并且所有节点上部署的服务之间是非独立、高度覆盖、互为备份的,簇内所有节点上的服务构成一个高冗余的完备服务集。这样当某一个或几个服务节点毁坏时,能及时切换到其他备用信息服务节点,提供不间断服务,系统正常运行。

2)在自组网络簇内,会部署一个服务治理系统,具有uddi(服务注册与发现中心)功能,保存各服务节点的相关状态信息,对簇内所有信息服务节点进行统一管理。

3)若干个机动边缘信息服务系统之间,即自组网络簇之间相互进行服务部署,各系统的服务治理系统以p2p的方式进行连接和服务目录的部署,各个簇内的消息治理组件上保存的信息构成一个高冗余的服务目录完备集。

4)自组网络簇内的所有节点所提供的服务注册目录信息,被部署到各个服务治理系统上,当某一个或多个簇内的服务治理组件遭到破坏后,剩下其他系统上的消息治理系统上保存的节点信息之和,都可以构成一个完备的服务目录集,以维护各信息系统之间的容错和抗毁。

根据上述设计思想,本发明提供一种一种机动边缘信息服务系统的服务抗毁接替方法,在机动边缘信息服务网络中,通过虚拟全连接通信链路连接部署多个机动边缘服务中心,且机动边缘信息服务中心互为备份关系;当客户端连接某个机动边缘信息服务中心,且目标服务不在该机动边缘信息服务中心时,该机动边缘信息服务中心通过代理向目标所在的机动边缘信息服务中心发起访问请求,此时客户端采用代理模式访问该服务;多个机动边缘信息服务中心间通过无中心的数据同步机制进行服务目录同步。当其中1个机动边缘信息服务中心被摧毁时,它将无法继续与其他机动边缘信息服务中心进行数据同步,其他机动边缘信息服务中心进行服务目录同步;被摧毁的机动边缘信息服务中心上的服务通过跨中心的服务管理系统调度到其他机动边缘信息服务中心的其中一个上接替。

请参照图1,其表示基于机动边缘信息服务系统的服务管理框架。机动边缘信息服务中心内服务抗毁接替能力通过服务管理框架的服务注册模块、服务监控模块以及服务管理模块来实现。另外,本发明依托容器技术,采用轻量级的服务管理框架创建服务的冗余实例来保证节点内服务的高效访问。

服务注册模块负责接收机动边缘信息服务中心内各个机动边缘信息服务节点向其注册当前本节点上正在运行的服务实例信息,注册信息主要包括:节点ip、服务名称、服务运行的内部ip、服务当前状态(启动、运行、异常、结束)等。各个机动边缘信息服务节点定期向服务注册模块报告本机动边缘信息服务节点上的服务实例信息,注册模块在接收到相关信息后对机动边缘信息服务节点内的服务实例情况进行统计处理,并提供给服务管理系统的其他模块;如果机动边缘信息服务中心内的某个机动边缘信息服务节点由于网络或其他原因超过一定的时限没有向服务注册模块更新信息,则服务注册模块会标记该机动边缘信息服务节点为下线,并将该机动边缘信息服务节点上的服务实例通过服务中心重新调度到其他机动边缘信息服务节点上运行。

服务监控模块负责监控节点上各个服务实例的运行状态,主要是各个服务实例对资源的消耗情况(cpu、网络、内存),机动边缘信息服务节点在启动后向服务监控模块汇报本节点上不同类型的资源总量,并在节点资源总量发生变化时进行更新;同时,机动边缘信息服务节点会定期统计运行在其上的服务实例的相关资源使用情况并汇报给服务监控模块,服务监控模块在收集到节点内的资源信息后会进行统计处理,用户可通过服务监控模块发布的服务查看到当前中心的资源使用详情。

服务管理模块负责管理节点内正在运行的服务实例,它根据服务实例的注册和监控信息,动态更新服务的部署信息,并通过容器完成服务的提交更新;服务管理模块通过这种方式来动态管理服务实例的数量。具体地,所述服务管理模块通过计算发现当前某服务的各个实例的访问请求数量较高,通过计算后,为该服务增加一个实例,并将更新信息提交给容器,容器接收到更新请求后在节点内选择一个节点新增服务实例,新增服务实例在启动后向服务注册模块注册。

用户在访问服务时,会首先向服务注册模块发起请求获取服务实例所在的位置,服务注册模块会根据当前各个服务实例的访问压力,根据一定的负载均衡算法选择一个服务实例的位置返回给用户,用户再向该服务实例发起服务请求。

为了实现故障自动接替,需要实现服务的自动切换机制。在主机动服务中心中,服务正常运行,对外提供服务。在从机动服务中心中,服务可能处于待命状态,或者完全没有运行,如何让他们快速启动服务,是一个需要解决的问题。机动服务节点内部存在大量的服务,这些服务之间存在一定的依赖关系,他们的启动存在一定的顺序要求,最终可能导致服务启动时间过长,系统的可用性受到严重影响。

每个机动边缘信息服务中心都设置有自动切换机制,通过监控机动边缘信息服务系统中所有边缘机动信息服务中心的状态,在本地的机动边缘信息服务中心出现故障或毁坏瘫痪时通过手动切换或自动切换的方式,将服务切换至其他机动边缘信息服务中心,以确保服务的可用性。

多中心的切换有两种方式:

一是手动切换。手动切换可以用于如下场合:

当前运行的主中心需要维护。

自动切换机制出现故障。

出于安全的考虑,进行预防性的切换。

切换过程:

停止当前运行主中心上的服务;

将对外服务的ip地址disable;

启动接替中心上的服务;

将接替中心的对外服务ip地址改为原中心的地址,并enable。

二是自动切换。自动切换需要与心跳机制结合,当探测到主中心故障时,它会根据预定的策略,选择一个网络已在应用层、中间件层和网络层这三层基础上融合完成的机动边缘信息服务中心来接替。在战术网络环境下,通常的策略是,优先同战区的信息服务中心,当同战区无可用信息服务中心时、会切换不同战区异地的机动信息服务中心,最后在选定信息服务中心后,进行服务的切换。接替过程与手动类似。

进一步地,每个机动边缘信息服务中心还实时监控本地系统状态,在本地的机动边缘信息服务中心正常时,由本地边缘机动信息服务中心提供服务;当本地边缘机动信息服务中心出现故障或毁坏瘫痪时,将服务切换到远端的其他边缘机动信息服务中心提供服务;当本地的机动边缘信息服务中心故障排除后,重新切换为由本地机动边缘信息服务中心提供服务,确保系统的可靠性和健壮性。

对服务抗毁的实现有如下关键的要求:

1)灾难发生后,可以迅速确定故障点和有效数据源;

2)灾难发生后,需要迅速触发相关子系统,采取有效策略,使整个容灾系统能够对外提供不间断服务。

战术级服务因其运行环境的复杂性和可能面临的战争威胁,其可用性和鲁棒性设计更重要,故战术服务中心应多于1个,且中心之间通过虚拟全连接通信链路连接,并具有互为备份的能力。

请参照图2,其表示根据本发明的服务抗毁接替示意图。图中边缘机动服务信息节点a、b、c、d即以下描述内容中对应的战术服务中心a、b、c、d。

多个战术服务中心间通过无中心的数据同步机制进行服务目录同步,即战术服务中心a、b、c、d会实时同步彼此的服务目录。当服务中心d被摧毁后,它将无法继续与其他服务中心进行数据同步,至此,仅a、b、c三个服务中心进行服务目录同步;原先d服务中心上的服务会通过跨中心的服务管理系统调度到其他服务中心上(例如b中心),此时如果客户端连接服务中心a访问该服务,a会到服务目录中进行搜寻,一旦发现该服务由战术服务中心b接替,则战术服务中心a将服务访问通过本节点内的服务代理转发到战术服务中心b上,由战术服务中心b内的服务代理执行服务访问等操作,实现服务在服务中心间的抗毁接替。

上述跨中心服务抗毁接替功能依赖于服务目录信息的同步。服务目录信息的同步依托一个无中心的数据同步模型。具体上,每个战术服务中心都通过数据库记录同步消息的状态,每一条数据包含源战术服务中心和目标战术服务中心的ip地址信息、同步数据的信息(来自于哪一个数据表,标识数据的id号)、数据的处理标志位(未同步、同步失败以及同步成功)、数据创建的时间和同步的操作类型(添加、删除、更新)等字段。

同步工具将本地服务注册信息推送到其他战术服务中心,同步操作完成之后返回一组操作是否成功的标志,本地战术服务中心根据这组标志更新相关服务注册信息的同步状态。在该模式下,各战术服务中心相互之间完全独立,只处理本地数据。由此,每个战术服务中心在物理结构层次上的地位是对等的,弱化了战术服务中心间的概念,实现了物理结构模式下无中心的架构,使得各战术服务中心的服务注册之间能够直接进行服务注册信息同步共享。

基于无中心的数据同步模型,各个战术服务中心的元数据库都需包含全局路由信息以及所收集的服务注册数据,需要同步的服务注册信息都有一个能唯一标识的字段。整个机制从横向上来看,所有战术服务中心组成一个网状结构,假设有n个战术服务中心,若某个战术服务中心上的服务注册有数据更新,那么同步机制主动调用其他n-1个战术服务中心的元数据服务实现服务注册信息的同步。从纵向上来看,各个战术服务中心的服务注册数据同步的机制由元数据库、同步工具、元数据服务组成,同步工具获取数据库中的同步数据,调用目标战术服务中心的元数据服务实现服务注册信息的同步共享,并根据返回的同步结果更新本地消息的状态。

由于应用层面存在多个服务信息单元,各单元之间的服务依赖和调用,会形成一条服务调用链。此时,若一个服务节点出现毁坏,很容易因为依赖关系而引发故障的蔓延,导致系统的瘫痪。针对这种情况,需要在信息系统中引入熔断机制,来控制信息服务节点之间的服务调用和请求异常情况,避免更大的损失。正常情况下,断路器是关闭状态,当请求节点出现问题时,会引起雪崩效应;打开状态下,当请求节点出现异常状态时,断路器会直接给另一个节点返回一个结果,终止等待阻塞;半开状态下,熔断时间窗结束后,熔断器猜测节点恢复正常,对节点的请求进行分流,大部分的请求会直接返回结果,提示异常;小部分的流量尝试请求节点a,如果节点a响应状态恢复正常,熔断器会恢复关闭状态;如果节点a的响应状态依然异常,熔断器继续保持半开状态。

当服务不可用时,系统可根据预置的策略做容错处理,大部分的容错能力和策略是公共的,因此可以下沉到服务框架中实现。服务系统根据不同的状况,进行相应的容错处理。当边缘环境中服务调用失败时,系统利用路由容错机制进行处理,提升系统可靠性;当迎来系统业务高峰期时,为了保证核心服务的正常运行,系统触发服务降级机制进行容错处理;当系统中机动边缘服务的运行质量低于某个临界点时,启动熔断机制;在整个系统运行期间,当资源受限,成为瓶颈时,服务框架需要启动流控保护机制。

路由容错是在底层实现机动边缘服务的自动容错处理,可以提升系统的可靠性。本项目拟采用的容错策略包括:

失败自动切换机制。机动边缘服务调用失败自动切换策略,指的是当发生服务调用异常时,重新路由,通过服务注册于发现中心查找下一个可用的机动边缘服务提供者。机动边缘服务发布时,可以指定服务的集群容错策略。

失败回调机制。机动边缘服务调用失败之后,提供异常回调接口,执行机动边缘服务消费者自定义的失败处理逻辑。

快速失败机制。在业务高峰期,对于一些非核心的服务,希望只调用一次,失败也不再重试,为重要的核心服务节约运行资源。快速失败机制能够很好地应对此种场景。快速失败策略的设计比较简单,获取到服务调用异常之后,直接忽略异常,记录异常日志。

当军用机动边缘服务系统面临请求高峰时,为了保证核心服务的sla(服务等级协议),需要通过服务降级机制,来停掉一些不太重要的业务,为核心服务提供运行资源。服务降级的常见策略有强制降级、容错降级和优雅降级三种。

强制降级。当外界的触发条件达到某个临界值时,由运维人员或者开发人员决策,对某类或某个服务进行强制降级。

强制降级常用的策略有:1)不发起远程服务调用,直接返回空;2)不发起远程服务调用,直接抛出指定异常;3)不发起远程服务调用,直接执行本地模拟接口实现类。

容错降级。当非核心服务不可用时,可以对故障服务进行业务逻辑放通,以保证核心服务的运行。容错降级的常用策略有:1)异常转义;2)自定义降级逻辑。将异常屏蔽掉,直接执行本地模拟接口实现类,并返回执行结果。

优雅降级。当机动边缘服务调用异常、超时或熔断时,可以通过回调的方式实现业务的优雅降级。

机动边缘服务的熔断机制是从消费端保护机动边缘服务提供者的措施,当机动边缘服务的运行质量低于某一临界值时,启动熔断机制,暂停机动边缘服务调用一段时间,以保障后端的机动边缘服务不会因为持续过负荷而宕机。

触发熔断器的条件取决于机动边缘服务的运行质量,机动边缘服务的运行质量通常由多种因素决定,具有多个衡量因子,通过对机动边缘服务健康度建模。可以实现对机动边缘服务运行质量的实时评估。

基于服务系统整体监控平台中的分布式日志采集系统、告警系统性能数据采集等信息来源,利用在线大数据实时分析技术,通过健康度模型,对机动边缘服务的健康度按照周期进行实时评估,同时将评估结果通过消息队列订阅发布出去,各个节点订阅机动边缘服务的健康度,与熔断器阈值进行比较,修改熔断器开关状态。

服务的熔断器拥有关闭、打开和半打开三种状态。这三种状态之间的转换条件。服务调用时,对熔断开关状态进行判断,当熔断开关关闭时,请求允许通过熔断器。如果当前机动边缘服务健康度高于指定阈值,开关继续保持关闭,否则开关切换为打开状态。当熔断器开关打开时,服务调用请求被禁止通过。调用失败,执行本地降级逻辑,如果没有实现降级逻辑,默认返回异常。当熔断器开关处于打开状态时,经过指定周期t,熔断器会自动进入半开状态,这时熔断器会允许请求通过,当请求调用成功时,熔断器恢复关闭状态;若失败,则继续保持打开状态。

在边缘节点服务系统实际运行过程中,运行资源是有限的。当资源成为瓶颈时,服务框架需要对消费者做限流,启动流控保护机制。流量控制有多种策略,常用的有:针对访问速率的静态流控、针对资源占用的动态流控、用户自定义流控等。静态流控主要针对客户端访问速率进行控制,它通常根据服务质量等级协定(sla)中约定的qps做全局流量控制。由于机动边缘服务具备弹性伸缩、动态上下线等特性,因此在集群中某个机动边缘服务实例的节点个数是动态变化的,采用传统的平均分配机制无法做到精确的控制。本发明采用基于动态配额申请制的静态流控策略。首先,系统部署时,根据机动边缘服务节点数和静态流控qps阈值,拿出一定比例的配额做初始分配,剩余的配额放在额配资源池中;其次,某个机动边缘服务节点使用完配额,就主动向服务注册中心申请配额。服务注册中心会按照配额申请策略进行分配。最后,当总的配额申请完时,则返回0配额给各个申请配额的服务节点,服务节点对新接入的请求消息进行流控。当系统负载压力非常大时,系统进入过负载状态,可能是cpu、内存资源已经过载,也可能是应用进程内部的资源几乎耗尽,如果继续全量处理业务,可能会导致消息严重积压或者应用进程宕机。动态流控是分级别的,不同级别拒掉的消息比例不同,这取决于资源的负载使用情况。例如当发生一级流控时,系统拒绝掉1/4的消息;发生二级流控时,拒绝掉1/2的消息;发生三级流控时,所有的消息都被拒绝。针对不同的j事业务和场景,存在不同的流控策略。底层的服务框架无法实现所有业务级的定制流控策略,因此,业务级别的流控往往由业务通过自定义流控机制定制实现。

如果主节点因天灾或者攻击而受到破坏,实时监控到主中心节点的失效后,备用服务中心节点主动将本地服务唤醒,接管主节点的全部服务,所有服务请求都被路由到备用边缘节点,这种切换也可以通过手动来进行。

从主节点接替后,应用将数据写入到本地,同时,定期将数据异步地写入到远程的另一个边缘节点,确保数据有两个副本。此时处于降级运行模式,因为两个节点是异步复制,如果备用节点失效,那么可能造成尚未复制到远程中心节点的数据丢失。

如果主信息中心因天灾或者攻击而受到破坏,从信息中心实时监控到主服务的失效后,主动将本地服务唤醒,接管主中心的全部服务,所有服务请求都被路由到从中心,从信息中心处理所有的请求。这种切换也可以通过手动来进行。

从中心节点接替服务后,应用将数据写入到本地,同时,定期将数据异步地写入到远程的另一个备用边缘节点,确保数据有两个副本。此时处于降级运行模式,因为两个服务节点是异步复制,如果备用节点失效,那么可能造成尚未复制到远程数据中心的数据丢失。

至此,应用根据本发明的机动边缘信息服务系统的服务抗毁接替方法,在战术环境下,当节点损毁时,将服务迁移到接替节点,实现服务跨节点启动恢复,保证了服务的一致性。

上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1