1.本技术涉及电数字数据处理领域,尤其涉及数据传输方法、系统及相应设备和存储介质。
背景技术:
2.基于目前的医院平台服务和供应商平台服务部署环境的限制,医院平台服务部署在医院内网环境,供应商平台服务部署在公网(外网)为供应商提供服务。由于部署交互环境复杂(多内网服务器、外网服务器、第三方系统),网络状况无法保障,服务之间的调用极易出现部分服务不可用、网络不可达的情况。现有的熔断机制包括:服务降级、资源隔离、不可用服务的调用快速失败,一般通过超时机制、熔断器和熔断后的降级方法来实现,这些熔断主要解决同步接口大量访问异常问题,无法解决部分系统不可用导致的异步数据传输问题。
技术实现要素:
3.为了克服现有技术中存在的不足,本发明提供一种数据传输方法、系统及相应设备和存储介质,其能够解决部分服务不可用导致的异步数据传输问题,减少网络、资源消耗并保证多系统数据一致性。
4.在本发明的第一方面,提供一种数据传输方法,其中内网服务与外网服务之间经网关服务进行数据传输,每个独立的网关服务均定义一个独立的服务注册中心,所述服务注册中心配置成:
5.定时检查注册到所述服务注册中心的内网服务和/或外网服务的健康状态;
6.响应于确定一数据传输服务异常,暂停相应的数据传输并将服务异常情况通知服务提供者;
7.响应于异常的数据传输服务重启成功,通知所有服务订阅者,恢复相应的数据传输服务。
8.在本发明的第二方面,提供一种数据传输系统,包括内网服务、网关服务和外网服务,内网服务与外网服务之间经网关服务进行数据传输,每个独立的网关服务均定义一个独立的服务注册中心,所述服务注册中心包括:
9.服务健康检查模块,用于定时检查注册到所述服务注册中心的内网服务和/或外网服务的健康状态;
10.第一服务熔断模块,用于响应于确定一数据传输服务异常,暂停相应的数据传输并将服务异常情况通知服务提供者;
11.第一服务恢复模块,用于响应于异常的数据传输服务重启成功,通知所有服务订阅者,恢复相应的数据传输服务。
12.在本发明的第三方面,提供一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中所述处理器执行所述计算机程序时实
现根据本发明的第一方面的方法的步骤或者实现根据本发明的第二方面的系统的功能。
13.根据本发明的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现根据本发明的第一方面的方法的步骤或者实现根据本发明的第二方面的系统的功能。
14.按照本发明,通过在内网服务与外网服务之间的每个独立的网关服务均定义一个独立的服务注册中心,定时检查注册到服务注册中心的内网服务和/或外网服务的健康状态,在确定一数据传输服务异常时,暂停相应的数据传输并将服务异常情况通知服务提供者,在异常的数据传输服务重启成功时,通知所有服务订阅者,恢复相应的数据传输服务,可提供一种多系统数据传输熔断恢复机制,保障单个系统或者服务异常,对系统其他服务没有影响,服务恢复后,及时恢复数据传输,保证多系统数据一致性。服务恢复后,提供广播的方式恢复其他服务的调用,避免定时查询带来的不必要的资源开销。另外,服务之间的监控采用发布订阅的方式,保证服务之间的有效监控。
15.结合附图阅读本发明实施方式的详细描述后,本发明的其它特点和优点将变得更加清楚。
附图说明
16.图1为根据本发明方法的一实施例的流程图;
17.图2为应用本发明方法进行数据传输的示意图;
18.图3为根据本发明系统的一实施例的框图。
19.为清晰起见,这些附图均为示意性及简化的图,它们只给出了对于理解本发明所必要的细节,而省略其他细节。
具体实施方式
20.下面参照附图对本发明的实施方式和实施例进行详细说明。
21.通过下面给出的详细描述,本发明的适用范围将显而易见。然而,应当理解,在详细描述和具体例子表明本发明优选实施例的同时,它们仅为说明目的给出。
22.图1示出了根据本发明的数据传输方法的一优选实施例的流程图。
23.本发明方法应用于包括内网服务、网关服务和外网服务的系统,内网服务与外网服务之间经网关服务进行数据传输,如图2中所示。按照本发明,在每个独立的网关服务均定义一个独立的服务注册中心,服务注册中心的功能包括相关联系统如内网系统和外网系统的接口检测服务、服务健康检查,可以定时检测接口和/或服务是否可用。
24.在步骤s102,定时检查注册到服务注册中心的内网服务和/或外网服务的健康状态,例如通过调用内网服务/外网服务中心提供的健康检查接口可检查内网服务和/或外网服务的上线、下线、修改等。
25.在步骤s104,确定数据传输服务是否异常。如果是,则处理进行到步骤s106;否则,处理返回到步骤s102。在实施例中,数据传输服务是否异常可通过其失败次数进行确定。如果例如因服务器资源占用而导致服务响应时间过长进而出现多次失败,例如失败次数超过预定次数,则界定该数据传输服务异常。
26.在步骤s106,启动熔断机制,即暂停相应的数据传输并将服务异常情况通知服务
提供者。服务提供者收到服务异常通知后,检查服务健康状态,检查完毕后重启服务并注册到服务注册中心。
27.在步骤s108,在异常的数据传输服务重启成功后,通知所有服务订阅者,恢复相应的数据传输服务。
28.尽管系统交互的复杂性,通过服务订阅,服务重启后,及时发布服务消息给相关系统,相关系统得到消息以后,自动重启数据传输服务。从而,多个系统在部署环境、网络环境复杂场景下,面对部分服务不可用场景,及时熔断,减少不必要的网络、资源消耗,服务恢复以后,及时启动数据同步机制,保障服务可用状态下,数据可靠传输。
29.在实施例中,服务注册中心还实现下述功能:定时检测内网和/或外网的数据传输接口是否可用。例如,可通过主动检测的方式检测,同步数据成功则接口可用,同步数据失败则接口不可用。也可通过被动通知的方式检测,服务提供者如果发生异常主动通知服务订阅者,恢复后同步给服务订阅者立即恢复数据传输。响应于一数据传输接口不可用,暂停相应的数据传输并启动网络检测服务;响应于检测到网络恢复正常,停止网络检测服务并恢复相应的数据传输服务。通过针对不同场景的特殊性,采用不同的熔断恢复机制,从而提供基于服务订阅、广播通知、网络监测相结合的服务熔断恢复机制,使得处理措施更有针对性,资源、网络消耗减少的效果更好,数据传输的恢复更及时。
30.在实施例中,可通过网络中断时间来确定相应的数据传输接口是否可用。例如,可确定网络中断时间是否超过预定阈值,对于超过预定阈值的数据传输服务,暂停数据传输,可以减少不必要的资源消耗。换言之,短时间内的网络中断,不启动熔断机制,长时间的网络中断,启动熔断机制。
31.在实施例中,网络检测服务可通过心跳监测确定网络是否恢复正常。服务注册中心的服务,可以定时向其他系统的服务中心发送心跳请求,如果某段时间未收到心跳请求,可以确定系统网络中断,反之,则网络正常。
32.在实施例中,针对内网有多个系统交互的场景,除网关服务之外,还可在内网部分服务使用上述机制保证院内和网关交互数据的传输,即在一个或多个内网服务部署另外的服务注册中心,内网服务经另外的服务注册中心与网关之间的数据交互传输与上面描述的内网经网关中部署的服务注册中心与外网的数据交互传输类似,避免部分服务不可用导致的数据丢失、不一致问题,减少服务器请求压力的同时,保证多个系统之间数据的最终一致性。当然,对于同一台服务器,可以省略网络心跳监测。
33.图3示出了根据本发明的数据传输系统的一优选实施例的框图。该数据传输系统包括内网服务、网关服务和外网服务,内网服务与外网服务之间经网关服务进行数据传输,每个独立的网关服务均定义一个独立的服务注册中心,服务注册中心包括:
34.服务健康检查模块302,用于定时检查注册到所述服务注册中心的内网服务和/或外网服务的健康状态;
35.第一服务熔断模块304,用于响应于确定一数据传输服务异常,暂停相应的数据传输并将服务异常情况通知服务提供者;
36.第一服务恢复模块306,用于响应于异常的数据传输服务重启成功,通知所有服务订阅者,恢复相应的数据传输服务。
37.在实施例中,服务注册中心还包括:接口检测模块,用于定时检测内网和/或外网
的数据传输接口是否可用;第二服务熔断模块,用于响应于一数据传输接口不可用,暂停相应的数据传输并启动网络检测服务;第二服务恢复模块,用于响应于检测到网络恢复正常,停止网络检测服务并恢复相应的数据传输服务。服务健康检查模块和接口检测模块可同时分别运行。
38.在另一实施例中,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现结合图1所示所述的方法实施例或其它相应方法实施例的步骤或者实现结合图3所示所述的系统实施例或其它相应系统实施例的功能,在此不再赘述。
39.在另一实施例中,本发明提供一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中所述处理器执行所述计算机程序时实现结合图1所示所述的方法实施例或其它相应方法实施例的步骤或者实现结合图3所示所述的系统实施例或其它相应系统实施例的功能,在此不再赘述。
40.在此所述的多个不同实施方式或者其特定特征、结构或特性可在本发明的一个或多个实施方式中适当组合。另外,在某些情形下,只要适当,流程图中和/或流水处理描述的步骤顺序可修改,并不必须精确按照所描述的顺序执行。另外,本发明的多个不同方面可使用软件、硬件、固件或者其组合和/或执行所述功能的其它计算机实施的模块或装置进行实施。本发明的软件实施可包括保存在计算机可读介质中并由一个或多个处理器执行的可执行代码。计算机可读介质可包括计算机硬盘驱动器、rom、ram、闪存、便携计算机存储介质如cd-rom、dvd-rom、闪盘驱动器和/或具有通用串行总线(usb)接口的其它装置,和/或任何其它适当的有形或非短暂计算机可读介质或可执行代码可保存于其上并由处理器执行的计算机存储器。本发明可结合任何适当的操作系统使用。
41.除非明确指出,在此所用的单数形式“一”、“该”均包括复数含义(即具有“至少一”的意思)。应当进一步理解,说明书中使用的术语“具有”、“包括”和/或“包含”表明存在所述的特征、步骤、操作、元件和/或部件,但不排除存在或增加一个或多个其他特征、步骤、操作、元件、部件和/或其组合。如在此所用的术语“和/或”包括一个或多个列举的相关项目的任何及所有组合。
42.前面说明了本发明的一些优选实施例,但是应当强调的是,本发明不局限于这些实施例,而是可以本发明主题范围内的其它方式实现。本领域技术人员可以在本发明技术构思的启发和不脱离本发明内容的基础上对本发明做出各种变型和修改,这些变型或修改仍落入本发明的保护范围之内。
转载请注明原文地址:https://tc.8miu.com/read-2643.html