1.本技术涉及数据处理技术领域,特别是涉及一种数据回填依赖倒置方法、装置、计算机设备和存储介质。
背景技术:2.近年来,随着技术的发展,系统架构建设早已由单体服务模式发展为微服务集群模式,微服务集群模式将不同业务,不同领域细分成不同的微服务,例如:用户服务(user),地址服务(address),订单服务(order),会员服务(vip)等等,每个服务当对独立,存储的数据也相对单一,但实际完整的业务功能数据,却比较复杂,需要依赖多个微服务领域数据,经过组装才能完整呈现。
3.一些底层服务,例如用户服务(user),它会被许多服务和业务依赖,传统方案:用户服务往往需要提供查询接口,返回数据供其他服务使用或者组装数据。每个依赖方,会根据自己的业务需求,去使用用户服务,一些依赖服务考虑到性能、数据安全、服务稳定,会进行缓存、加密、熔断限流,服务被依赖的越多,系统压力和风险越高,如果某个依赖方,使用的不规范,如循环调用,请求量过大等,都有可能会压垮被依赖方,导致其他依赖方也无法使用。只提供标准的查询接口,在依赖方较多时,在数据解析组装、缓存、加密、熔断限流等方面会存在许多重复的劳动。
技术实现要素:4.基于此,有必要针对上述技术问题,提供一种数据回填依赖倒置方法、装置、计算机设备和存储介质,减轻数据提供方系统压力,减少数据解析组装、缓存、加密、熔断限流等方面的重复劳动,提高运行效率。
5.根据本公开实施例的一个方面,一种数据回填依赖倒置方法,其特征在于,包括:
6.数据提供方获取依赖方数据主体;
7.数据提供方将依赖方所需数据放入数据主体,得到回填后数据主体;
8.将回填后数据主体返回给依赖方;
9.数据提供方将依赖方所需数据放入数据主体包括:数据提供方访问数据主体,数据提供方从数据主体中获得关联信息,数据提供方获取依赖方所需数据,数据提供方将依赖方所需数据回填入数据主体。
10.在一些实施例中,数据提供方将依赖方所需数据放入数据主体通过调用同一运算模块完成对多个不同依赖方数据主体的所需数据放入。
11.在一些实施例中,数据提供方将依赖方所需数据放入数据主体包括对依赖方所需数据做以下处理中的至少一种:数据解析组装处理、缓存处理、加密处理、熔断限流处理。
12.在一些实施例中,数据提供方访问数据主体包括通过泛型表达实现对数据主体的访问。
13.在一些实施例中,数据提供方从数据主体中获得关联信息、数据提供方获取依赖
方所需数据、数据提供方将依赖方所需数据回填入数据主体中至少一个通过使用含有lamada表达式的运算模块来实现。
14.在一些实施例中,数据提供方将依赖方所需数据放入数据主体包括:参数校验和/或限制一次数据回填的数据量。
15.根据本公开实施例的另一个方面,提供了一种数据回填依赖倒置装置,包括:
16.获取模块,用于数据提供方获取依赖方数据主体;
17.处理模块,用于数据提供方将依赖方所需数据放入数据主体,得到回填后数据主体;
18.返回模块,用于将回填后数据主体返回给依赖方;
19.数据提供方将依赖方所需数据放入数据主体包括:数据提供方访问数据主体,数据提供方从数据主体中获得关联信息,数据提供方获取依赖方所需数据,数据提供方将依赖方所需数据回填入数据主体;
20.在一些实施例中,数据提供方将依赖方所需数据放入数据主体通过调用同一运算模块完成对多个不同依赖方数据主体的所需数据放入;
21.数据提供方将依赖方所需数据放入数据主体包括对依赖方所需数据做以下处理中的至少一种:数据解析组装处理、缓存处理、加密处理、熔断限流处理;
22.数据提供方访问数据主体包括通过泛型来表达实现对数据主体的访问;
23.数据提供方从数据主体中获得关联信息、数据提供方获取依赖方所需数据、数据提供方将依赖方所需数据回填入数据主体中至少一个通过使用含有lamada表达式的运算模块来实现;
24.数据提供方将依赖方所需数据放入数据主体包括:参数校验和/或限制一次数据回填的数据量。
25.根据本公开实施例的另一个方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,处理器执行计算机程序时实现上述任一实施例方法的步骤。
26.根据本公开实施例的另一个方面,一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例方法的步骤。
27.通过实施本公开的上述方案,可以得到以下有益效果:
28.1.减少了在数据解析组装、缓存、加密、熔断限流等方面存在的许多重复劳动;降低了系统压力,减少了某个依赖方使用的不规范时(如:循环调用,请求量过大等,压垮被依赖方),会导致其他依赖方无法使用的可能。
29.2.数据提供方对数据的控制能力更强,本身数据提供方对自己的数据更加了解,也更容易调优控制,因此能够降低数据处理难度,有效的提升工作效率。
30.3.数据提供方对自己数据源的变更更容易,降低了变更数据的难度。
31.4.数据依赖方回填数据的动作倒置到数据提供方,数据依赖方耦合的代码减少,使用起来更简洁,有多个依赖方的时候,可以大量减少重复的工作。数据依赖方只需要做简单的调用,简捷高效。
附图说明
32.图1为现有方案订单系统的一个实施例的示意图;
33.图2是示出本公开的数据回填依赖倒置方法的一些实施例的流程图;
34.图3是示出本公开的数据回填依赖倒置方法的另一些实施例的流程图;
35.图4是示出本公开关于订单列表的数据回填依赖倒置方法的一些具体实施例的流程图;
36.图5是示出本公开关于会员列表的数据回填依赖倒置方法的一些具体实施例的流程图;
37.图6是示出本公开的数据回填依赖倒置装置的一些实施例的结构示意图;
38.图7是示出用于实现本公开一些实施例的计算机设备的内部结构图。
具体实施方式
39.下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
40.图1为现有方案订单系统的一个实施例的示意图。
41.步骤102获取订单列表;
42.步骤104收集订单中用户id集合;
43.步骤106调用用户服务,获取用户列表;
44.步骤108解析用户数据;
45.步骤110将解析后的数据遍历设置到订单列表。
46.图2示出本公开的数据回填依赖倒置方法的一些实施例的流程图。
47.如图2所示,该方法包括:
48.步骤202数据提供方获取依赖方数据主体;
49.在一些实施例中,数据提供方获取依赖方数据主体还包括依赖方告知数据提供方从数据主体中获得关联信息的方式,以及向数据主体中填入数据的方式。关联信息包括uid。
50.步骤204数据提供方将依赖方所需数据放入数据主体,得到回填后数据主体;
51.在一些实施例中,数据提供方将依赖方所需数据放入数据主体包括:数据提供方访问数据主体,数据提供方从数据主体中获得关联信息,数据提供方获取依赖方所需数据,数据提供方将依赖方所需数据回填入数据主体。
52.在一些实施例中,数据提供方将依赖方所需数据填入数据主体包括对依赖方所需数据做以下处理中的至少一种:数据解析组装处理、缓存处理、加密处理、熔断限流处理。
53.在一些实施例中,无需关注数据主体的具体类型,通过泛型来表达实现对数据主体的访问:list《t》datasources,其中datasources为数据主体集合。
54.在一些实施例中,从数据主体中获得关联信息的方式包括:在java8中利用lamada函数表达:function《t,string》uidgetter,其中uidgetter为从数据主体中获取uid的获取
器。
55.在一些实施例中,获取依赖方所需数据包括:在java8中利用lamada函数表达:function《uservo,u》userdatacoverter,其中userdatacoverter为用户域数据转换器。
56.在一些实施例中,将依赖方所需数据回填入数据主体:在java8中利用lamada函数表达:biconsumer《t,u》valuesetter。其中valuesetter为用户域数据组装到主体数据中的设置器。
57.步骤206将回填后数据主体返回给依赖方。
58.图3示出本公开的数据回填依赖倒置方法的另一些实施例的流程图。
59.如图3所示,该方法包括:
60.步骤300数据提供方获取依赖方数据主体;
61.步骤302进行参数校验;
62.在一些实施例中,参数校验对象包括以下至少一种:数据主体、数据主体中获得的关联信息、依赖方所需数据、将依赖方所需数据回填入数据主体的设置器。在一些实施例中,对数据主体进行参数校验包括对数据主体集合(datasources)进行参数校验,对数据主体中获得的关联信息进行参数校验包括对从数据主体中获取uid的获取器(uidgetter)进行参数校验,对依赖方所需数据进行参数校验包括对用户域数据转换器(userdatacoverter)进行参数校验,对将依赖方所需数据回填入数据主体的设置器进行参数校验包括对用户域数据组装到主体数据中的设置器(valuesetter)进行参数校验。
63.在一些实施例中,可以进一步限制一次数据回填的数据量。
64.步骤304数据提供方访问数据主体并从数据主体中获得关联信息;
65.在一些实施例中,数据提供方从数据主体中获得关联信息包括从数据主体中提取uid的集合,根据uid的集合批量获取用户数据。在一些实施例中,对用户数据进行缓存、加密、限流处理。
66.步骤306数据提供方获取依赖方所需数据,数据提供方将依赖方所需数据回填入数据主体。
67.在一些实施例中,获取依赖方所需数据包括:在java8中利用lamada函数表达:function《uservo,u》userdatacoverter,其中userdatacoverter为用户域数据转换器。在一些实施例中,通过用户数据集合组装用户数据转换器,具体实现方式如:final map《string,u》userdataconvertmap=uservos,stream().filter(objects::nonnull).collect(collectors.tomap(uservo::getuid,userdataconverter))。
68.在一些实施例中,将依赖方所需数据回填入数据主体包括:过滤掉无法进行回填的数据(如:空的、获取不到uid的主体数据的、查不到用户数据的);从主体数据中获取uid;从用户数据转换器中获取用户域数据;按照依赖方要求设置用户域数据组装到主体数据中的设置器。
69.步骤308将回填后数据主体返回给依赖方。
70.步骤302到步骤306相当于上述图2实施例中步骤204。
71.图4示出本公开关于订单列表的数据回填依赖倒置方法的一些实施例的流程图。
72.如图4所示,该方法包括:
73.步骤402获取订单列表;
74.步骤404让user系统回填订单列表中的username字段。
75.图5示出本公开关于会员列表的数据回填依赖倒置方法的一些实施例的流程图。
76.如图5所示,该方法包括:
77.步骤502获取会员列表;
78.步骤504让user系统回填会员列表中的vipusername字段。
79.上述图4、图5中描述实施例的步骤404、步骤504通过对图2步骤204或图3步骤302-306实现函数的简单调用即可完成,减少了大量重复工作。
80.应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,附图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
81.本技术还提供一种数据回填依赖倒置装置。如图6所示,一种数据回填依赖倒置装置,包括:
82.获取模块602,用于数据提供方获取依赖方数据主体;
83.处理模块604,用于数据提供方将依赖方所需数据放入数据主体,得到回填后数据主体;
84.返回模块606,用于将回填后数据主体返回给依赖方;
85.数据提供方将依赖方所需数据放入数据主体包括:数据提供方访问数据主体,数据提供方从数据主体中获得关联信息,数据提供方获取依赖方所需数据,数据提供方将依赖方所需数据回填入数据主体;
86.在一些实施例中,数据提供方将依赖方所需数据放入数据主体通过调用同一函数完成对多个不同依赖方数据主体的所需数据放入;
87.在一些实施例中,数据提供方将依赖方所需数据放入数据主体包括对依赖方所需数据做以下处理中的至少一种:数据解析组装处理、缓存处理、加密处理、熔断限流处理;
88.在一些实施例中,数据提供方访问数据主体包括通过泛型来表达实现对数据主体的访问;
89.在一些实施例中,数据提供方从数据主体中获得关联信息、数据提供方获取依赖方所需数据、数据提供方将依赖方所需数据回填入数据主体中至少一个通过lamada函数表达实现;
90.在一些实施例中,数据提供方将依赖方所需数据放入数据主体包括:参数校验和/或限制一次数据回填的数据量。
91.关于一种数据回填依赖倒置装置的具体限定可以参见上文中对于一种数据回填依赖倒置方法的限定,在此不再赘述。上述一种数据回填依赖倒置装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
92.在一些实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构
图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种多维度地址的处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。本领域技术人员可以理解,图7中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
93.本领域技术人员可以理解,图7中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
94.在一些实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:数据提供方获取依赖方数据主体;数据提供方将依赖方所需数据放入数据主体,得到回填后数据主体;将回填后数据主体返回给依赖方;所述数据提供方将依赖方所需数据放入数据主体包括:数据提供方访问数据主体,数据提供方从数据主体中获得关联信息,数据提供方获取依赖方所需数据,数据提供方将依赖方所需数据回填入数据主体。
95.在一些实施例中,数据提供方将依赖方所需数据放入数据主体通过调用同一函数完成对多个不同依赖方数据主体的所需数据放入;
96.在一些实施例中,数据提供方将依赖方所需数据放入数据主体包括对依赖方所需数据做以下处理中的至少一种:数据解析组装处理、缓存处理、加密处理、熔断限流处理;
97.在一些实施例中,数据提供方访问数据主体包括通过泛型来表达实现对数据主体的访问;
98.在一些实施例中,数据提供方从数据主体中获得关联信息、数据提供方获取依赖方所需数据、数据提供方将依赖方所需数据回填入数据主体中至少一个通过lamada函数表达实现;
99.在一些实施例中,数据提供方将依赖方所需数据放入数据主体包括:参数校验和/或限制一次数据回填的数据量。
100.在一些实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:数据提供方获取依赖方数据主体;数据提供方将依赖方所需数据放入数据主体,得到回填后数据主体;将回填后数据主体返回给依赖方;所述数据提供方将依赖方所需数据放入数据主体包括:数据提供方访问数据主体,数据提供方从数据主体中获得关联信息,数据提供方获取依赖方所需数据,数据提供方将依赖方所需数据回填入数据主体。
101.在一些实施例中,数据提供方将依赖方所需数据放入数据主体通过调用同一函数完成对多个不同依赖方数据主体的所需数据放入;
102.在一些实施例中,数据提供方将依赖方所需数据放入数据主体包括对依赖方所需数据做以下处理中的至少一种:数据解析组装处理、缓存处理、加密处理、熔断限流处理;
103.在一些实施例中,数据提供方访问数据主体包括通过泛型来表达实现对数据主体的访问;
104.在一些实施例中,数据提供方从数据主体中获得关联信息、数据提供方获取依赖方所需数据、数据提供方将依赖方所需数据回填入数据主体中至少一个通过lamada函数表达实现;
105.在一些实施例中,数据提供方将依赖方所需数据放入数据主体包括:参数校验和/或限制一次数据回填的数据量。
106.本领域普通技术人员可以理解实现上述方法实施例中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)、直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
107.至此,已经详细描述了本公开的实施例。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
108.虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改或者对部分技术特征进行等同替换。本公开的范围由所附权利要求来限定。