1.本发明涉及数据处理技术领域,特别涉及一种实现高延迟数据实时响应方法及终端。
背景技术:2.随着系企业信息化和it技术的深入发展,系统、平台之间的交互调用越来越频繁,调用链越来越长。这就出现了一对矛盾:应用使用者希望系统能够实时流畅地返回需要的数据,以及系统因系统响应延迟大而无法实时流畅的返回数据的矛盾,这在系统需要从多平台特别是远程高延迟接口获取数据时较为明显。
3.为了解决这个矛盾,当前使用的技术方案有:
4.1.数据缓存,系统获取高延迟数据后设置一个过期时间,再次使用时直接使用缓存,直到缓存过期,再次从远程接口同步获取。
5.但数据缓存的技术方案存在以下缺点:(1)对外部服务和网络稳定性依赖高,数据缓存过期后,数据使用同步加载,如果出现网络短时间中断、外部服务重启或短时间服务异常,将使应用无法加载到数据,影响正常使用。(2)数据更新及时性和平均响应时间难兼顾。当数据缓存过期后,首次调用还是需要同步从远程接口拉取数据,本次响应会变慢。同时,若缓存设置时间长,实时响应次数占比高,平均响应时间短,但存在数据更新不及时问题;若缓存设置时间短,数据频繁过期,同步数据加载频繁,导致缓存作用降低,高延迟响应变多,平均响应时间长。
6.2.周期全量加载,系统按照周期从远程接口一次全量加载需要的数据到本地,用户访问时,直接使用本地数据。
7.但周期全量加载的技术方案存在以下缺点:(1)应用场景受限,周期全量加载,对于亿级以上的数据体量,全量加载本身不具有可行性,只适合数据体量不大且更新周期不频繁的应用。(2)数据更新及时性和平均响应时间难兼顾。周期全量加载本身就限制了其更新周期不能太短,否则频繁的全量更新,导致系统压力急剧增大甚至崩溃;若更新周期过长,则数据更新不及时。
8.因此,现有方案很难兼顾数据更新的及时性和平均响应时间。
技术实现要素:9.(一)要解决的技术问题
10.为了解决现有技术的上述问题,本发明提供一种实现高延迟数据实时响应方法及终端,以兼顾数据更新的及时性和平均响应时间。
11.(二)技术方案
12.为了达到上述目的,本发明采用的技术方案为:
13.一种实现高延迟数据实时响应方法,包括步骤:
14.在缓存高延迟数据时,为所述高延迟数据设置数据有效期,所述数据有效期包括
按照时间前后依次排列的数据非加载期和数据加载期;
15.接收用户请求,判断所述用户请求所请求的第一数据是否已缓存,若是,则判断所述第一数据是处于数据加载期还是数据非加载期,若是处于数据非加载期,则直接返回所缓存的第一数据,若是处于数据加载期,则直接返回所缓存的第一数据,并根据所述用户请求调用远程数据来更新第一数据。
16.进一步地,所述直接返回所缓存的第一数据,并根据所述用户请求调用远程数据来更新第一数据包括:
17.直接返回所缓存的第一数据,并根据所述用户请求异步调用远程数据;
18.若远程数据调用成功,则返回所调用的远程数据来更新第一数据。
19.进一步地,所述并根据所述用户请求调用远程数据之后还包括:
20.若远程数据调用失败,则当次的所述用户请求在预设次数内进行再次调用。
21.进一步地,所述更新第一数据包括:
22.根据所调用的远程数据对所缓存的第一数据进行数据缓存更新并对应更新数据有效期、数据非加载期和数据加载期。
23.进一步地,在所述数据加载期内的每一次用户请求都会调用远程数据。
24.为了达到上述目的,本发明采用的另一种技术方案为:
25.一种实现高延迟数据实时响应终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
26.在缓存高延迟数据时,为所述高延迟数据设置数据有效期,所述数据有效期包括按照时间前后依次排列的数据非加载期和数据加载期;
27.接收用户请求,判断所述用户请求所请求的第一数据是否已缓存,若是,则判断所述第一数据是处于数据加载期还是数据非加载期,若是处于数据非加载期,则直接返回所缓存的第一数据,若是处于数据加载期,则直接返回所缓存的第一数据,并根据所述用户请求调用远程数据来更新第一数据。
28.进一步地,所述直接返回所缓存的第一数据,并根据所述用户请求调用远程数据来更新第一数据包括:
29.直接返回所缓存的第一数据,并根据所述用户请求异步调用远程数据;
30.若远程数据调用成功,则返回所调用的远程数据来更新第一数据。
31.进一步地,所述并根据所述用户请求调用远程数据之后还包括:
32.若远程数据调用失败,则当次的所述用户请求在预设次数内进行再次调用。
33.进一步地,所述更新第一数据包括:
34.根据所调用的远程数据对所缓存的第一数据进行数据缓存更新并对应更新数据有效期、数据非加载期和数据加载期。
35.进一步地,在所述数据加载期内的每一次用户请求都会调用远程数据。
36.(三)有益效果
37.本发明的有益效果在于:一种实现高延迟数据实时响应方法及终端,将高延迟数据在缓存中的有效期分为了直接加载的数据非加载期和需要远程调用的数据加载期,在数据非加载期内,直接调用本地缓存数据,保证了数据的平均响应时长,同时在数据未过期的数据加载期内,就会尝试进行调用远程数据,此时,就算调用失败,也可以返回所缓存的第
一数据,而如果调用成功,则可以返回更新后的远程数据,从而兼顾了数据更新的及时性和平均响应时间。
附图说明
38.图1为本发明实施例的一种实现高延迟数据实时响应方法的主要流程示意图;
39.图2为本发明实施例涉及的缓存数据的结构示意图;
40.图3为本发明实施例涉及的数据非加载期的时序图;
41.图4为本发明实施例涉及的数据加载期的时序图;
42.图5为本发明实施例的一种实现高延迟数据实时响应终端的结构示意图。
43.【附图标记说明】
44.1:一种实现高延迟数据实时响应终端;
45.2:处理器;
46.3:存储器。
具体实施方式
47.为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
48.实施例一
49.在现有对于高延迟数据的处理无法兼顾数据更新的及时性和平均响应时间,本实施例为了提升系统的用户体验,压缩系统响应时长,对远程高延迟接口数据提供类似本地数据的实时响应效果,并在最大限度上兼容网络和远程数据接口的不稳定性,且能保证数据更新的及时性。
50.请参照图1至图4,本实施例提供的一种实现高延迟数据实时响应方法,包括步骤:
51.s1、在缓存高延迟数据时,为高延迟数据设置数据有效期,数据有效期包括按照时间前后依次排列的数据非加载期和数据加载期;
52.在本实施例中,如图2所示,在数据有效期固定的情况下,数据非加载期和数据加载期相互制约,数据加载期越长则数据非加载期越短,反之亦然,三个周期可以根据需要灵活调整。三周期满足以下关系:数据有效期=数据非加载期+数据加载期。
53.具体而言,在一应用场景下,比如某个应用的实时流量,需要更新速度快,则可以在数据有效期内,数据非加载期远远短于数据加载期,在一个具体的示例中,数据有效期为1天,数据非加载期为5分钟,数据加载期为23小时55分钟,由此,保证实时流量在数据非加载期内能实时更新。
54.s2、接收用户请求,判断用户请求所请求的第一数据是否已缓存,若是,则判断第一数据是处于数据加载期还是数据非加载期,若是处于数据非加载期,则直接返回所缓存的第一数据,若是处于数据加载期,则直接返回所缓存的第一数据,并根据用户请求调用远程数据来更新第一数据。
55.其中,对于后续的用户请求,如果用户请求的第一数据是之前已经缓存的,则需要判断第一数据的缓存是否在数据有效期内,如果在,则第一数据已经在本地缓存当中,此时,就需要判断第一数据是处于数据加载期还是数据非加载期,如果是处于数据非加载期,
则如图3所示,直接返回所缓存的第一数据,并不发起对远程数据的请求,如果是处于数据加载期,此时,如图4所示,步骤s2中直接返回所缓存的第一数据,并根据用户请求调用远程数据来更新第一数据包括:
56.s21、直接返回所缓存的第一数据,并根据用户请求异步调用远程数据;
57.其中,在数据加载期内,也是直接返回已经缓存的第一数据至应用前端,使得客户的请求能够及时的响应,因此,对于远程数据的请求并不影响应用响应时间,保证了平均响应时间,提高了用户体验。
58.如图4所示,在数据加载期内,所缓存的第一数据直接返回前端的同时,本地异步加载线程会去远程调用数据,由于远程调用的数据相较于本地缓存的数据来说获取较慢,因此图4中以慢数据来表示调用的远程数据。
59.s22、若远程数据调用成功,则返回所调用的远程数据来更新第一数据。
60.其中,更新第一数据包括:
61.根据所调用的远程数据对所缓存的第一数据进行数据缓存更新并对应更新数据有效期、数据非加载期和数据加载期。
62.此时,如果远程数据调用成功,则对缓存的第一数据再进行更新,这样,新的第一数据则具有新的数据有效期,对应的,数据非加载期和数据加载期的时间周期也进行了更新。这样就保证了数据更新的及时性,而根据前面论述,这样也不影响平均响应时间,因此兼顾了数据更新的及时性和平均响应时间。
63.同时,远程数据也会返回到应用前端来更新应用前端的显示,使得数据能够实时更新到前端,保证了数据更新的及时性。
64.s23、若远程数据调用失败,则当次的用户请求在预设次数内进行再次调用。
65.在本实施例中,预设次数为一次,即一次调用失败,对于这次的用户请求就不进行调用。由此,在数据有效期内,每一次用户请求中,数据加载失败,都无需在短时间内反复尝试重新加载,减少远程服务的高频调用压力,从而不影响应用正常使用。
66.由此可见,在数据使用频率相同的情况下,数据加载期越长,允许数据加载失败的次数越大,对外部容错性越高。
67.在本实施例中,在数据加载期内的每一次用户请求都会调用远程数据。由此,偶发的网络抖动和远程服务异常不影响系统的正常服务,在数据加载滑动窗口中每次使用数据都会触发数据异步请求,在该数据加载期内只需有一次加载成功即可。
68.由此,相较于现有技术的两种方案来说:
69.1、相较于现有的数据缓存的方案来说,其一、在本实施例中,在数据加载期内进行远程数据的更新请求,此时,若出现网络短时间中断、外部服务重启或短时间服务异常灯意外情况,导致远程数据请求失败,也有缓存的第一数据可以显示,这样就不会影响应用的正常使用,因此降低了网络和外部服务要求。其二,在同样周期的情况下,比如本实施例的数据有效期和数据缓存的周期都是一天,但本实施例在数据缓存过期之前就开始尝试同步从远程接口拉取数据,不会出现数据更新的首次响应会变慢的问题。同时,本实施例在数据有效期内就会先进行本地缓存数据的读取且在数据加载期内就进行了数据更新,无论周期设置过长还是过短,相较于数据缓存的现有技术来说,其数据更新都是更加及时,其高延迟响应也不影响应用的平均响应时间,因此,本实施例相较于现有的周期全量加载,能兼顾数据
更新的及时性和平均响应时间。
70.2、相较于现有的周期全量加载来说,其一,应用场景不受限,每次远程数据请求都是部分更新,减少了服务请求压力,从而可以适应亿级以上的数据体量。其二,在同样周期的情况下,比如本实施例的数据有效期和全量加载的周期都是一天,本实施例在数据有效期内的数据加载期中就会进行数据更新,比全量加载需要在周期后才可以来说,其数据更新及时性明显更高,尤其是数据非加载期短的场景,数据更新及时性就是大幅度提升,而在平均响应时间上,都是直接使用本地缓存的数据,也能保证平均响应时间,因此,本实施例相较于现有的周期全量加载,能兼顾数据更新的及时性和平均响应时间。
71.实施例二
72.请参照图5,一种实现高延迟数据实时响应终端1,包括存储器3、处理器2及存储在存储器3上并可在处理器2上运行的计算机程序,所述处理器2执行所述计算机程序时实现上述实施例一中的步骤。
73.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
技术特征:1.一种实现高延迟数据实时响应方法,其特征在于,包括步骤:在缓存高延迟数据时,为所述高延迟数据设置数据有效期,所述数据有效期包括按照时间前后依次排列的数据非加载期和数据加载期;接收用户请求,判断所述用户请求所请求的第一数据是否已缓存,若是,则判断所述第一数据是处于数据加载期还是数据非加载期,若是处于数据非加载期,则直接返回所缓存的第一数据,若是处于数据加载期,则直接返回所缓存的第一数据,并根据所述用户请求调用远程数据来更新第一数据。2.根据权利要求1所述的一种实现高延迟数据实时响应方法,其特征在于,所述直接返回所缓存的第一数据,并根据所述用户请求调用远程数据来更新第一数据包括:直接返回所缓存的第一数据,并根据所述用户请求异步调用远程数据;若远程数据调用成功,则返回所调用的远程数据来更新第一数据。3.根据权利要求2所述的一种实现高延迟数据实时响应方法,其特征在于,所述并根据所述用户请求调用远程数据之后还包括:若远程数据调用失败,则当次的所述用户请求在预设次数内进行再次调用。4.根据权利要求2所述的一种实现高延迟数据实时响应方法,其特征在于,所述更新第一数据包括:根据所调用的远程数据对所缓存的第一数据进行数据缓存更新并对应更新数据有效期、数据非加载期和数据加载期。5.根据权利要求1所述的一种实现高延迟数据实时响应方法,其特征在于,在所述数据加载期内的每一次用户请求都会调用远程数据。6.一种实现高延迟数据实时响应终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:在缓存高延迟数据时,为所述高延迟数据设置数据有效期,所述数据有效期包括按照时间前后依次排列的数据非加载期和数据加载期;接收用户请求,判断所述用户请求所请求的第一数据是否已缓存,若是,则判断所述第一数据是处于数据加载期还是数据非加载期,若是处于数据非加载期,则直接返回所缓存的第一数据,若是处于数据加载期,则直接返回所缓存的第一数据,并根据所述用户请求调用远程数据来更新第一数据。7.根据权利要求6所述的一种实现高延迟数据实时响应终端,其特征在于,所述直接返回所缓存的第一数据,并根据所述用户请求调用远程数据来更新第一数据包括:直接返回所缓存的第一数据,并根据所述用户请求异步调用远程数据;若远程数据调用成功,则返回所调用的远程数据来更新第一数据。8.根据权利要求7所述的一种实现高延迟数据实时响应终端,其特征在于,所述并根据所述用户请求调用远程数据之后还包括:若远程数据调用失败,则当次的所述用户请求在预设次数内进行再次调用。9.根据权利要求7所述的一种实现高延迟数据实时响应终端,其特征在于,所述更新第一数据包括:根据所调用的远程数据对所缓存的第一数据进行数据缓存更新并对应更新数据有效
期、数据非加载期和数据加载期。10.根据权利要求6所述的一种实现高延迟数据实时响应终端,其特征在于,在所述数据加载期内的每一次用户请求都会调用远程数据。
技术总结本发明提供的一种实现高延迟数据实时响应方法及终端,包括步骤:在缓存高延迟数据时,为高延迟数据设置数据有效期,数据有效期包括按照时间前后依次排列的数据非加载期和数据加载期;接收用户请求,判断用户请求所请求的第一数据是否已缓存,若是,则判断第一数据是处于数据加载期还是数据非加载期,若是处于数据非加载期,则直接返回所缓存的第一数据,若是处于数据加载期,则直接返回所缓存的第一数据,并根据用户请求调用远程数据来更新第一数据。由此,本发明兼顾了数据更新的及时性和平均响应时间。均响应时间。均响应时间。
技术研发人员:柳廷秀 谢海东
受保护的技术使用者:福建福诺移动通信技术有限公司
技术研发日:2022.06.29
技术公布日:2022/11/1