CN115080272A - 一种业务数据处理方法、电子设备及存储介质 - Google Patents
一种业务数据处理方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115080272A CN115080272A CN202210744042.0A CN202210744042A CN115080272A CN 115080272 A CN115080272 A CN 115080272A CN 202210744042 A CN202210744042 A CN 202210744042A CN 115080272 A CN115080272 A CN 115080272A
- Authority
- CN
- China
- Prior art keywords
- service
- sub
- aggregation
- interface
- data
- 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.)
- Pending
Links
Images
Classifications
-
- 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/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- 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/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- 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/541—Client-server
-
- 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/545—Gui
-
- 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/549—Remote execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种业务数据处理方法、电子设备及存储介质,涉及计算机技术领域。方法通过第一业务请求确定客户端请求业务对应的聚合接口标识,然后查询聚合接口标识对应的聚合配置信息,聚合配置信息包括聚合接口标识关联的多个子业务接口,依据业务需求动态调整聚合接口标识关联的子业务接口。在查询到业务关联的子业务接口之后,向多个子业务接口并行发送第二业务请求,并获取到各子业务接口的业务响应数据,最后执行各业务响应数据的拼装操作,得到第一业务对应的业务数据并返回至所述客户端。由此,在业务发生变更时,不需要对聚合接口标识进行维护,只需要调整聚合接口标识关联的子业务接口,便于业务的拓展和聚合接口标识的维护。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种业务数据处理方法、电子设备及存储介质。
背景技术
当前,业务上经常会发生这样的场景,例如一个业务接口,在业务需求变化时,其往往伴随着多个版本的迭代,由此导致该业务接口的接口职责变得越来越繁重。且对于一个业务接口,其维护成本较高。而且,业务接口网往往存在着耦合严重的问题,不利于后期的业务拓展。
发明内容
本发明实施例的目的在于提供一种业务数据处理方法、电子设备及存储介质,以便于子业务接口的维护和业务拓展。具体技术方案如下:
在本发明实施的第一方面,首先提供了一种业务数据处理方法,应用于服务器的网关层,所述方法包括:
获取客户端的第一业务请求;
确定所述第一业务请求对应的聚合接口标识;
查询所述聚合接口标识对应的聚合配置信息,所述聚合配置信息包括聚合接口标识关联的多个子业务接口,其中,所述聚合配置信息依据业务需求动态调整所述聚合接口标识关联的子业务接口;
向多个子业务接口并行发送第二业务请求,并接收各子业务接口返回的业务数据响应;
基于各子业务接口的业务数据响应,获取对应的业务响应数据;
执行各业务响应数据的拼装操作,得到第一业务对应的业务数据并返回至所述客户端。
可选的,所述查询所述聚合接口标识对应的聚合配置信息,包括:
依据聚合数据库中的标识映射关系,匹配出与所述聚合接口标识对应的多个业务标识;
依据所述聚合数据库中的路由映射关系,匹配出各业务标识对应的子业务接口的请求地址。
可选的,所述依据聚合数据库中的标识映射关系,匹配出与所述聚合接口标识对应的多个业务标识,包括:
依据聚合数据库中的标识映射关系,匹配与所述聚合接口标识对应的多个业务标识;
在匹配所述业务标识失败的情况下,启用处于第二优先级的备用数据库,所述聚合数据库处于第一优先级,所述第一优先级高于第二优先级;
从所述备用数据库中的标识映射关系,匹配出与所述聚合接口标识对应的多个业务标识。
可选的,所述依据所述聚合数据库中的路由映射关系,匹配出各业务标识对应的子业务接口的请求地址,包括:
依据所述聚合数据库中的路由映射关系,匹配各业务标识对应的子业务接口的请求地址;
在匹配所述请求地址失败的情况下,启用处于第二优先级的备用数据库;
依据所述备用数据库中的路由映射关系,匹配出各业务标识对应的子业务接口的请求地址。
可选的,所述确定出各业务标识对应的子业务接口的请求地址之后,所述方法还包括:
对所述聚合接口标识对应的多个子业务接口的请求地址执行缓存操作,作为本地缓存数据;
在再次获取客户端的第一业务请求的情况下,确定出对应的聚合接口标识;
在所述本地缓存数据中查询所述聚合接口标识关联的多个子业务接口的请求地址;
若查询到所述请求地址,基于各请求地址向多个子业务接口并行发送第二业务请求;
若未查询到所述请求地址,查询所述聚合接口标识对应的聚合配置信息。
可选的,所述对所述聚合接口标识对应的多个子业务接口的请求地址执行缓存操作,作为本地缓存数据,包括:
对所述聚合接口标识对应的多个子业务接口的请求地址执行缓存操作,作为中间缓存数据;
对执行缓存操作后的缓存间隔大于缓存阈值的中间缓存数据进行清除,得到本地缓存数据。
可选的,所述执行各业务响应数据的拼装操作,得到第一业务对应的业务数据并返回至所述客户端,包括:
执行各业务响应数据的拼装操作,生成拼装业务数据;
将所述拼装业务数据转化为键值对类型的第一业务对应的业务数据,并返回至客户端。
可选的,所述基于各子业务接口的业务数据响应,获取对应的业务响应数据,包括:
基于各子业务接口的业务数据响应,确定对应的接口调用状态;
在所述接口调用状态为调用成功的情况下,获取对应子业务接口的业务响应数据;
在所述接口调用状态为调用失败的情况下,创建空值数据并作为对应子业务接口的业务响应数据。
在本发明实施的第二方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述的业务数据处理方法的方法步骤。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的业务数据处理方法。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的业务数据处理方法。
本发明实施例提供的方案中,通过第一业务请求,确定出客户端请求业务对应的聚合接口标识,然后查询聚合接口标识对应的聚合配置信息,其中,聚合配置信息包括聚合接口标识关联的多个子业务接口,并且,可以依据业务需求动态调整聚合接口标识关联的子业务接口。而后,在查询到业务关联的子业务接口之后,向多个子业务接口并行发送第二业务请求,并获取到各子业务接口的业务响应数据,最后执行各业务响应数据的拼装操作,得到第一业务对应的业务数据并返回至所述客户端。由此,在业务发生变更时,不需要对聚合接口标识进行维护,只需要调整聚合接口标识关联的子业务接口,便于业务的拓展和聚合接口标识的维护。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例中的一种业务数据处理方法的步骤流程图;
图2为本发明实施例中的另一种业务数据处理方法的步骤流程图;
图3为本发明实施例中的又一种业务数据处理方法的步骤流程图;
图4为本发明实施例中的一种业务数据处理装置的结构示意图;
图5为本发明实施例中的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
参照图1,示出了一种业务数据处理方法,应用于服务器的网关层,所述方法可以包括:
S101、获取客户端的第一业务请求。
S102、确定所述第一业务请求对应的聚合接口标识。
本发明实施例中,第一业务请求指的是客户端发起的获取第一业务数据的请求。例如,客户端的一个视频播放页面中存在多个内容组件,每个内容组件都需要分别请求服务端获取数据,由此,每个内容组件对应一个子业务。相应的,在服务端中,每个子业务对应有一个子业务接口,为了避免用户打开视频播放页面时同时发起多个第一业务请求,同一时间会占用多个网关连接,使得网关连接资源被大量浪费。在业务开发中,依据客户端的相关页面的组件情况,在网关层对底层的多个子业务接口进行聚合,得到一个虚拟的聚合接口,并创建对应的聚合接口标识,用于提供给客户端进行调用。由此,客户端只需要发起一次对聚合接口标识的请求,就可以请求获取对应所有子业务所需要的业务数据,降低了网关的资源连接数,优化了网关层处理第一业务请求的性能。对应的,第一业务可以包括多个子业务。例如,第一业务可以是打开视频播放页面、播放视频以及打开评论区等。每个第一业务对应的聚合接口标识只有一个。且通过聚合接口标识能够查询到各子业务接口的接口信息。因此,客户端基于第一业务对应的聚合接口标识,生成包括有对应聚合接口标识的第一业务请求。由此,网关层在获取到第一业务请求时,可以基于第一业务请求获取到对应的聚合接口标识。
S103、查询所述聚合接口标识对应的聚合配置信息,所述聚合配置信息包括聚合接口标识关联的多个子业务接口,其中,所述聚合配置信息依据业务需求动态调整所述聚合接口标识关联的子业务接口。
本发明实施例中,网关层在获取到聚合接口标识后,对聚合接口标识执行查询操作,从而获取到聚合接口标识对应的聚合配置信息。其中,聚合配置信息包括聚合接口标识关联的多个子业务接口。在查询到对应的子业务接口之后,网关层向对应的子业务接口,分别请求对应子业务的相关业务数据。其中,聚合配置信息可以根据业务需求动态调整,例如发生业务的变更时,则可以根据对应的子业务的增设或删减,同步增设或删减聚合接口标识关联的子业务接口,形成新的聚合配置信息。因此,在下一次客户端发起第一业务请求时,对聚合接口标识执行查询操作之后,就可以获取到更新后的聚合配置信息,从而无需修改网关层的聚合接口标识相关的代码,也不需要重启服务器。同时便于网关层的接口维护和后期的业务拓展。
S104、向多个子业务接口并行发送第二业务请求,并接收各子业务接口返回的业务数据响应。
S105、基于各子业务接口的业务数据响应,获取对应的业务响应数据。
S106、执行各业务响应数据的拼装操作,得到第一业务对应的业务数据并返回至所述客户端。
本发明实施例中,网关层在确定出第一业务请求对应的多个子业务接口时,可以对多个子业务接口并行发送第二业务请求。第二业务请求指的是网关层发起的获取子业务数据的请求,然后业务层根据第二业务请求对应的子业务接口,确定出各子业务接口的业务数据,并生成业务数据响应,发送至网关层。网关层在获取到各子业务接口的业务响应数据之后,对各业务响应数据执行拼装操作,确定出第一业务对应的业务数据,并返回至客户端。由此,客户端只需要发起一次对聚合接口标识的第一业务请求,就可以获取所有子业务所需要的信息。
参照图2,示出了另一种业务数据处理方法,所述方法可以包括:
S201、获取客户端的第一业务请求。
S202、确定所述第一业务请求对应的聚合接口标识。
本发明实施例中,客户端的一个视频播放页面中存在多个内容组件,每个内容组件都需要分别请求服务端获取数据,由此,每个内容组件对应一个子业务。相应的,在服务端中,每个子业务对应有一个子业务接口,为了避免用户打开视频播放页面时同时发起多个第一业务请求,同一时间会占用多个网关连接,使得网关连接资源被大量浪费,在业务开发中,依据客户端的相关页面的组件情况,在网关层对底层的多个子业务接口进行聚合,得到聚合接口标识,并将聚合接口标识提供给客户端调用。客户端只需要发起一次对聚合接口标识的请求,就可以获取所有子业务所需要的信息,降低了网关的资源连接数,优化了网关层处理第一业务请求的性能。对应的,第一业务可以包括多个子业务。例如,第一业务可以是显示视频页面,其中,在显示视频页面的同时,还需要显示视频播放页面、播放视频以及显示评论区等。每个第一业务对应的聚合接口标识只有一个,且通过聚合接口标识能够查询到各子业务接口的接口信息。因此,客户端基于业务对应的聚合接口标识,生成包括有对应聚合接口标识的第一业务请求。由此,网关层在获取到第一业务请求时,可以基于第一业务请求获取到对应的聚合接口标识。
一种示例中,视频播放页面对应的内容组件可以包括视频播放组件、评论显示组件以及弹幕显示组件等。第一业务请求可以是请求视频播放页面,其请求调用的聚合接口标识X。业务层接收到第一业务请求之后,从第一业务请求中获取到聚合接口标识X。
S203、依据聚合数据库中的标识映射关系,匹配出与所述聚合接口标识对应的多个业务标识。
本发明实施例中,网关层在获取到聚合接口标识后,对聚合接口标识执行查询操作,从而获取到聚合接口标识对应的聚合配置信息。其中,聚合配置信息包括聚合接口标识关联的多个子业务接口。在查询到对应的子业务接口之后,网关层向对应的子业务接口,分别请求对应子业务的相关业务数据。其中,聚合配置信息可以根据业务需求动态调整,例如发生业务的变更时,则可以根据对应的子业务的增设或删减,同步增设或删减聚合接口标识关联的子业务接口,形成新的聚合配置信息。此方案对网关层和业务层进一步解耦,因此,在下一次客户端发起第一业务请求时,对聚合接口标识执行查询操作之后,就可以获取到更新后的聚合配置信息,从而无需修改网关层的聚合接口标识相关的代码,也不需要重启服务器。同时便于网关层的接口维护和后期的业务拓展。
聚合接口标识对应的聚合配置信息可以预先存储在聚合数据库中。聚合数据库可以是mysql、redis或者是其他数据库,所述聚合数据库设置于网关层的外部。在业务开发过程中,可以在聚合数据库中预先建立起聚合接口标识和子业务接口之间的映射关系。一种示例中,可以对子业务接口设置业务标识。在将聚合接口标识提供给客户端进行调用,可以根据映射关系,确定出所述聚合接口标识对应的业务标识。聚合接口标识X对应有多个子业务接口,例如对应有3个子业务接口时,各业务标识分别为a、b以及c。其中,业务标识a对应的子业务接口执行的子业务是视频播放,业务标识b对应的子业务接口执行的子业务是评论显示,业务标识c对应的子业务接口执行的子业务是弹幕显示。由此,可以建立起聚合接口标识和业务标识之间的标识映射关系,其中标识映射关系可以通过标识映射表来体现,其中,参照下表1,示出了一种接口关系表的示例:
表1聚合接口标识和业务标识之间的标识映射表
序号 | 聚合接口标识 | 业务标识 |
1 | X | a |
2 | X | b |
3 | X | c |
4 | Y | a |
5 | Y | b |
根据上表可知,聚合接口标识X、业务标识a、业务标识b以及业务标识c之间的标识映射关系可以简单表示为X=a+b+c;聚合接口标识Y、业务标识a以及业务标识b之间的标识映射关系可以表示为Y=a+b,所述聚合接口标识和业务标识形成一对多的标识映射关系。其中,标识映射表对应的数据结构注释可以如表2所示:
表2标识映射表对应的数据结构注释表
字段名 | 数据类型 | 备注 |
Id | Long | 自增主键 |
biz_id | Long | 聚合接口标识 |
sub_api_biz_id | Long | 业务标识 |
参照表2所示,聚合数据库中需要通过不同的字段来区分聚合接口标识和业务标识等。其中,自增主键通过字段Id来表示,其用于数据库的自动编号,从而便于网关层在数据库中的数据查询。聚合接口标识通过字段biz_id来表示,例如在解析第一业务请求时,对应的请求数据中包括“biz_id=X”,则确定客户端请求聚合接口标识对应的第一业务的业务数据。业务标识通过字段sub_api_biz_id来表示,例如“sub_api_biz_id=a”则确定为业务标识a对应的子业务接口的业务响应数据。
考虑到网关层执行查询操作时,对应的聚合数据库若是出现故障无法被访问时,则网关服务整体宕机。作为本发明实施例的一种实施方式,所述依据聚合数据库中的标识映射关系,匹配出与所述聚合接口标识对应的多个业务标识,包括:
依据聚合数据库中的标识映射关系,匹配与所述聚合接口标识对应的多个业务标识。
在匹配所述业务标识失败的情况下,启用处于第二优先级的备用数据库,所述聚合数据库处于第一优先级,所述第一优先级高于第二优先级。
从所述备用数据库中的标识映射关系,匹配出与所述聚合接口标识对应的多个业务标识。
本发明实施例中,为了应对数据库组件的故障,可增加备用数据库,其中,所述备用数据库可以是mysql、redis或者是其他数据库。备用数据库内的存储数据和聚合数据库中的存储数据一致,并且,备用数据库中的存储数据随着聚合数据库的存储数据更新而同步更新。如,所述聚合数据库、备用数据库以及其他数据库构成一个数据库组群,并均存储在网关层外。并在网关层内配置有数据库的降级逻辑,例如对各数据库确定访问优先级。一种示例中,可以把聚合数据库确定为第一优先级,将备用数据库确定为第二优先级,第一优先级高于第二优先级。由此,可以在网关层执行查询操作时,首先依据处于第一优先级的聚合数据库中的标识映射关系,匹配与聚合接口标识对应的多个业务标识。在匹配业务标识失败的情况下,网关层确定处于第二优先级的备用数据库,并依据备用数据库中的标识映射关系,再次匹配与所述聚合接口标识对应的多个业务标识。由此可以保证此步骤节点的故障不会导致网关服务整体宕机。
S204、依据所述聚合数据库中的路由映射关系,匹配出各业务标识对应的子业务接口的请求地址。
本发明实施例中,在聚合数据库或备用数据库中匹配到聚合接口标识对应的业务标识,例如在匹配到X=a+b+c之后,确定出业务标识a对应的子业务接口、业务标识b对应的子业务接口以及业务标识c对应的子业务接口的请求地址。请求地址为URL(UniformResource Locator,统一资源定位器)。其中,业务标识和对应的子业务接口的请求地址之间的对应关系可以通过子业务接口路由信息表实现。参照表3,示出了一种子业务接口路由信息表的示例:
表3子业务接口路由信息表
业务标识 | 请求地址 |
a | http://domain/1.0/merge |
b | http://domain/2.0/merge |
c | http://domain/3.0/merge |
参照表3所示,子业务接口路由信息表包括了业务标识和请求地址之间的路由映射关系,例如,业务标识a对应的子业务接口的请求地址为http://domain/1.0/merge等,其中,子业务接口路由信息表中数据对应的结构注释可以如表4所示:
表4子业务接口路由信息表中对应的数据结构注释表
字段名 | 数据类型 | 备注 |
sub_api_biz_id | Long | 业务标识 |
sub_api_biz_key | String | 业务关键字 |
sub_api_url | String | 请求地址 |
参照表4所示,在聚合数据库中需要通过不同的字段来保存各子业务接口的相关信息,业务标识通过字段sub_api_biz_id来表示,业务关键字通过字段sub_api_biz_key来表示,各子业务接口对应的请求地址通过sub_api_url来表示。如“sub_api_biz_id=a,sub_api_url=http://domain/1.0/merge,sub_api_biz_key=播放视频,”表征业务标识a对应的子业务接口的子业务功能为播放视频,其对应的请求地址为http://domain/1.0/merge。
当业务需求变化时,例如在视频播放页面中增加相关视频组件时,可以在聚合数据库中更改聚合接口标识和业务标识之间的映射关系。例如增加的子业务为相关视频推荐,其对应的子业务接口的业务标识为d,则将之前的聚合接口标识X与各业务标识之间的标识映射关系更改为X=a+b+c+d。由此,在业务需求变化时,只需要维护标识映射关系,修改标识映射关系中的相关字段即可完成子业务接口聚合关系的切换。既不需要修改网关代码,也不需要重启服务器。只需要维护网关层的一套通用代码,不论聚合接口标识数量如何增长,网关代码始终不变,仅需要在数据库维护新的聚合关系即可,可以极大方便后续接口的开发和维护。
本发明实施例中,首先依据处于第一优先级的聚合数据库中的路由映射关系,匹配各业务标识对应的子业务接口的请求地址。在匹配所述请求地址失败的情况下。网关层确定处于第二优先级的备用数据库,并依据备用数据库中的路由映射关系,匹配出各业务标识对应的子业务接口的请求地址。由此可以保证此步骤节点的故障不会导致网关服务整体宕机。
考虑到网关层每次获取到客户端的第一业务请求时,都需要在执行相关数据库的查询操作之后才能够进行第二业务请求的转发。而单次查询数据库的时间根据数据库类型及网络性能,存在一定的时间损耗,由此会降低聚合接口标识的响应速度,影响网关性能。由此,作为本发明实施例的一种实施方式,所述确定出各业务标识对应的子业务接口的请求地址之后,所述方法还可以包括:
对所述聚合接口标识对应的多个子业务接口的请求地址执行缓存操作,作为中间缓存数据。
对执行缓存操作后的缓存间隔大于缓存阈值的中间缓存数据进行清除,得到本地缓存数据。
在再次获取客户端的第一业务请求的情况下,确定出对应的聚合接口标识。
在所述本地缓存数据中查询所述聚合接口标识关联的多个子业务接口的请求地址。
若查询到所述请求地址,基于各请求地址向多个子业务接口并行发送第二业务请求。
若未查询到所述请求地址,查询所述聚合接口标识对应的聚合配置信息。
本发明实施例中,可以选择在网关层中增加定时过期的本地缓存数据。例如在查询到各业务标识对应的子业务接口的请求地址之后,对聚合接口标识对应的多个子业务接口的请求地址在网关层中执行缓存操作,形成中间缓存数据。并且,在每次执行缓存操作的时候,确定缓存时刻。并从缓存时刻起,确定对应中间缓存数据的缓存时长,例如在缓存时长大于缓存阈值的情况下,清除对应的中间缓存数据,将未清除的中间缓存数据作为本地缓存数据。其中,缓存阈值可以动态设置,本领域技术人员可以根据实际业务需求进行确定,如缓存阈值可以是5分钟、8分钟以及10分钟等,在此不做限定。
由此,网关层在下一次获取到客户端的第一业务请求,并基于第一业务请求确定出聚合接口标识之后,优先在本地缓存数据中查询聚合接口标识关联的子业务接口的请求地址。例如,基于第一业务请求,确定对应的聚合接口标识X,经过查询本地缓存数据,得到聚合接口标识X对应的业务标识a、业务标识b以及业务标识c的接口请求地址。业务层可以依据对应子业务接口的请求地址,直接对多个子业务接口并行发送第二业务请求。若是在本地缓存数据中查询不到对应的聚合接口标识时,则再访问相关数据库执行查询操作。由此,在预设的缓存阈值的时间间隔内,同一聚合接口标识再次被客户端请求时,可以无需查询数据库,直接从本地缓存数据中获取其关联的子业务接口的请求地址,提升接口响应性能。
S205、向多个子业务接口并行发送第二业务请求,并接收各子业务接口返回的业务数据响应。
本发明实施例中,网关层在确定出第一业务请求对应的多个子业务接口时,可以对多个子业务接口并行发送第二业务请求。其中,需要预先建立起一个线程池用于并行发送第二业务请求,例如,预先将网关层与每个子业务接口建立起TCP连接,并确定出一条线程。由此,在网关层确定出各子业务接口的请求地址时,可以将各请求地址预先形成一地址集合,并通过不同地址集合预先确定出多个第二业务请求。然后通过不同线程将多个第二业务请求同时发送到各子业务接口中。各子业务接口只能对请求地址与自身匹配的第二业务请求做出数据响应。由此形成第二业务请求的并行发送。第二业务请求指的是网关层发起的获取子业务数据的请求,然后业务层根据第二业务请求对应的子业务接口,确定出各子业务接口的业务数据,并生成业务数据响应,发送至网关层。
S206、基于各子业务接口的业务数据响应,确定对应的接口调用状态。
S207、所述接口调用状态是否为调用成功。
在所述接口调用状态为调用成功的情况下,执行步骤S208,在所述接口调用状态为调用失败的情况下,执行步骤S209。
S208、获取对应子业务接口的业务响应数据。
S209、创建空值数据并作为对应子业务接口的业务响应数据。
由于在实际服务过程中,可能存在多种原因导致子业务接口调用失败的情况,比如网络延时导致的接口超时、服务器宕机导致的服务不可用、服务器请求流量激增导致的接口响应超时等等因素,因此在执行远程接口调用时考虑对应的降级逻辑。为了保证用户体验,避免请求第一业务时,因为同一聚合接口标识对应的多个子业务接口中的其中一个调用失败,造成反馈至所述客户端的第一业务的调用失败的情况发生。可以在网关层中优先根据各子业务接口的业务数据响应,确定各子业务接口的接口调用状态,接口调用状态用于判断子业务接口是否调用成功。具体地,对于HTTP(Hyper Text Transfer Protocol,超文本传输协议)请求,可以通过HTTP状态码为是否为“200”来判断请求是否成功,当接口请求的HTTP状态码为200时,对应子业务接口调用成功;当接口请求的HTTP状态码不为200时,对应子业务接口调用失败。例如,针对聚合接口标识X发起的第一业务请求,确定业务标识c对应的子业务接口调用失败时,聚合接口标识X对应的业务数据继续响应,且向客户端返回的业务数据是业务标识a和b对应的子业务接口的业务响应数据。
在所述接口调用状态为调用成功的情况下,从对应子业务接口的业务数据响应中获取到对应的业务响应数据。在所述接口调用状态为调用失败的情况下,例如调用对应的子业务接口出错或超时,此时网关层不能获取到对应子业务接口的业务响应数据,网关层自动创建空值数据,并作为对应子业务接口的业务响应数据。由此,子业务调用错误率在网关层进行了屏蔽,不管调用成功与否,客户端始终能够接收到所述第一业务对应的业务数据,始终是调用成功的状态。
S210、执行各业务响应数据的拼装操作,得到第一业务对应的业务数据并返回至所述客户端。
网关层在获取到各子业务接口的业务响应数据之后,对各业务响应数据执行拼装操作,得到拼装业务数据,将所述拼装业务数据转化为键值对类型的第一业务对应的业务数据,由此确定出第一业务对应的业务数据,并返回至客户端。由此,客户端只需要发起一次对聚合接口标识的第一业务请求,就可以获取所有子业务所需要的业务数据。
一种示例中,业务数据可以是map格式的数据类型,其是由键值对组成的集合。键值对类型的数据表达形式为key=value,例如,可以将拼装业务数据作为value,将聚合接口标识作为key,由此,业务数据可以是map<String,Object>格式。
参照图3所示,示出了又一种业务数据处理方法,所述方法应用于业务数据处理系统中,所述业务数据处理系统包括客户端和服务端。其中,所述服务端还包括网关层、业务层以及数据库,网关层包括请求收发模块、数据库查询模块、并发请求模块以及数据拼装模块。所述方法可以包括:
S301、客户端发送第一业务请求。
S302、请求收发模块对第一业务请求进行解析,确定出对应的聚合接口标识。
S303、数据库查询模块查询所述聚合接口标识对应的聚合配置信息。
S304、数据库查询模块将聚合配置信息发送至并发请求模块。
S305、并发请求模块根据聚合配置信息中的请求地址向关联的各子业务接口并行发送第二业务请求。
S306、各子业务接口返回第二业务请求对应的业务数据响应。
S307、数据拼装模块获取各子业务接口的业务响应数据并进行拼装,得到第一业务对应的业务数据,并返回至客户端。
本发明实施例中,对步骤S301-步骤S307的说明内容参照上述实施例所阐述的方法步骤内容,在此不另外展开阐述。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本申请实施例所必须的。
参照图3,还示出了一种业务数据处理系统,所述系统包括客户端和服务端,所述服务端包括网关层、业务层以及数据库。其中,网关层包括请求收发模块、数据库查询模块、并发请求模块以及数据拼装模块。所述请求收发模块用于接收第一业务请求,且在接收到第一业务请求之后,对第一业务请求进行解析,确定出对应的聚合接口标识。数据库查询模块根据聚合接口标识的聚合接口标识,查询聚合数据库或备用数据库,确定出聚合接口标识对应的聚合配置信息,聚合配置信息包括了聚合接口标识关联的多个子业务接口的请求地址。并发请求模块按照各请求地址,向业务层的各子业务接口并行发送第二业务请求。基于业务层对第二业务请求的业务数据响应,获取多个业务响应数据。数据拼装模块将各业务响应数据进行拼装,形成第一业务对应的业务数据,并返回至客户端。
本发明实施例中,对系统的说明内容参照上述实施例阐述的方法步骤内容。
参照图4,示出了一种业务数据处理装置,所述装置应用于服务器的网关层,所述装置可以包括:
第一请求获取模块401,用于获取客户端的第一业务请求。
标识确定模块402,用于确定所述第一业务请求对应的聚合接口标识。
配置查询模块403,用于查询所述聚合接口标识对应的聚合配置信息,所述聚合配置信息包括聚合接口标识关联的多个子业务接口,其中,所述聚合配置信息依据业务需求动态调整所述聚合接口标识关联的子业务接口。
第二请求发送模块404,用于向多个子业务接口并行发送第二业务请求,并接收各子业务接口返回的业务数据响应。
响应数据获取模块405,用于基于各子业务接口的业务数据响应,获取对应的业务响应数据。
业务数据拼装模块406,用于执行各业务响应数据的拼装操作,得到第一业务对应的业务数据并返回至所述客户端。
一种可选的发明实施例,所述配置查询模块403可以包括:
标识匹配子模块,用于依据聚合数据库中的标识映射关系,匹配出与所述聚合接口标识对应的多个业务标识。
地址匹配子模块,用于依据所述聚合数据库中的路由映射关系,匹配出各业务标识对应的子业务接口的请求地址。
一种可选的发明实施例,所述标识匹配子模块还用于:
依据聚合数据库中的标识映射关系,匹配与所述聚合接口标识对应的多个业务标识。
在匹配所述业务标识失败的情况下,启用处于第二优先级的备用数据库,所述聚合数据库处于第一优先级,所述第一优先级高于第二优先级。
从所述备用数据库中的标识映射关系,匹配出与所述聚合接口标识对应的多个业务标识。
一种可选的发明实施例,所述第一地址匹配子模块还用于:
依据所述聚合数据库中的路由映射关系,匹配各业务标识对应的子业务接口的请求地址。
在匹配所述请求地址失败的情况下,启用处于第二优先级的备用数据库。
依据所述备用数据库中的路由映射关系,匹配出各业务标识对应的子业务接口的请求地址。
一种可选的发明实施例,所述装置还包括数据缓存模块,所述数据缓存模块可以包括:
数据缓存子模块,用于对所述聚合接口标识对应的多个子业务接口的请求地址执行缓存操作,作为本地缓存数据。
标识确定子模块,用于在再次获取客户端的第一业务请求的情况下,确定出对应的聚合接口标识。
地址查询模块,用于在所述本地缓存数据中查询所述聚合接口标识关联的多个子业务接口的请求地址。
请求发送子模块,用于若查询到所述请求地址,基于各请求地址向多个子业务接口并行发送第二业务请求;
信息查询子模块,用于若未查询到所述请求地址,查询所述聚合接口标识对应的聚合配置信息。
一种可选的发明实施例,所述数据缓存子模块还用于:
对所述聚合接口标识对应的多个子业务接口的请求地址执行缓存操作,作为中间缓存数据。
对执行缓存操作后的缓存间隔大于缓存阈值的中间缓存数据进行清除,得到本地缓存数据。
一种可选的发明实施例,所述业务数据拼装模块406还可以用于:
执行各业务响应数据的拼装操作,生成拼装业务数据。
将所述拼装业务数据转化为键值对类型的第一业务对应的业务数据,并返回至客户端。
一种可选的发明实施例,所述响应数据获取模块405还可以包括:
状态确定子模块,用于基于各子业务接口的业务数据响应,确定对应的接口调用状态。
响应数据获取子模块,用于在所述接口调用状态为调用成功的情况下,获取对应子业务接口的业务响应数据。
还用于在所述接口调用状态为调用失败的情况下,创建空值数据并作为对应子业务接口的业务响应数据。
本发明实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,
存储器503,用于存放计算机程序;
处理器501,用于执行存储器503上所存放的程序时,实现如下步骤:
获取客户端的第一业务请求。
确定所述第一业务请求对应的聚合接口标识。
查询所述聚合接口标识对应的聚合配置信息,所述聚合配置信息包括聚合接口标识关联的多个子业务接口,其中,所述聚合配置信息依据业务需求动态调整所述聚合接口标识关联的子业务接口。
向多个子业务接口并行发送第二业务请求,并接收各子业务接口返回的业务数据响应。
基于各子业务接口的业务数据响应,获取对应的业务响应数据。
执行各业务响应数据的拼装操作,得到第一业务对应的业务数据并返回至所述客户端。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的业务数据处理方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的业务数据处理方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种业务数据处理方法,其特征在于,应用于服务器的网关层,所述方法包括:
获取客户端的第一业务请求;
确定所述第一业务请求对应的聚合接口标识;
查询所述聚合接口标识对应的聚合配置信息,所述聚合配置信息包括聚合接口标识关联的多个子业务接口,其中,所述聚合配置信息依据业务需求动态调整所述聚合接口标识关联的子业务接口;
向多个子业务接口并行发送第二业务请求,并接收各子业务接口返回的业务数据响应;
基于各子业务接口的业务数据响应,获取对应的业务响应数据;
执行各业务响应数据的拼装操作,得到第一业务对应的业务数据并返回至所述客户端。
2.根据权利要求1所述的业务数据处理方法,其特征在于,所述查询所述聚合接口标识对应的聚合配置信息,包括:
依据聚合数据库中的标识映射关系,匹配出与所述聚合接口标识对应的多个业务标识;
依据所述聚合数据库中的路由映射关系,匹配出各业务标识对应的子业务接口的请求地址。
3.根据权利要求2所述的业务数据处理方法,其特征在于,所述依据聚合数据库中的标识映射关系,匹配出与所述聚合接口标识对应的多个业务标识,包括:
依据聚合数据库中的标识映射关系,匹配与所述聚合接口标识对应的多个业务标识;
在匹配所述业务标识失败的情况下,启用处于第二优先级的备用数据库,所述聚合数据库处于第一优先级,所述第一优先级高于第二优先级;
从所述备用数据库中的标识映射关系,匹配出与所述聚合接口标识对应的多个业务标识。
4.根据权利要求3所述的业务数据处理方法,其特征在于,所述依据所述聚合数据库中的路由映射关系,匹配出各业务标识对应的子业务接口的请求地址,包括:
依据所述聚合数据库中的路由映射关系,匹配各业务标识对应的子业务接口的请求地址;
在匹配所述请求地址失败的情况下,启用处于第二优先级的备用数据库;
依据所述备用数据库中的路由映射关系,匹配出各业务标识对应的子业务接口的请求地址。
5.根据权利要求2所述的业务数据处理方法,其特征在于,所述确定出各业务标识对应的子业务接口的请求地址之后,所述方法还包括:
对所述聚合接口标识对应的多个子业务接口的请求地址执行缓存操作,作为本地缓存数据;
在再次获取客户端的第一业务请求的情况下,确定出对应的聚合接口标识;
在所述本地缓存数据中查询所述聚合接口标识关联的多个子业务接口的请求地址;
若查询到所述请求地址,基于各请求地址向多个子业务接口并行发送第二业务请求;
若未查询到所述请求地址,查询所述聚合接口标识对应的聚合配置信息。
6.根据权利要求5所述的业务数据处理方法,其特征在于,所述对所述聚合接口标识对应的多个子业务接口的请求地址执行缓存操作,作为本地缓存数据,包括:
对所述聚合接口标识对应的多个子业务接口的请求地址执行缓存操作,作为中间缓存数据;
对执行缓存操作后的缓存间隔大于缓存阈值的中间缓存数据进行清除,得到本地缓存数据。
7.根据权利要求1所述的业务数据处理方法,其特征在于,所述执行各业务响应数据的拼装操作,得到第一业务对应的业务数据并返回至所述客户端,包括:
执行各业务响应数据的拼装操作,生成拼装业务数据;
将所述拼装业务数据转化为键值对类型的第一业务对应的业务数据,并返回至客户端。
8.根据权利要求1所述的业务数据处理方法,其特征在于,所述基于各子业务接口的业务数据响应,获取对应的业务响应数据,包括:
基于各子业务接口的业务数据响应,确定对应的接口调用状态;
在所述接口调用状态为调用成功的情况下,获取对应子业务接口的业务响应数据;
在所述接口调用状态为调用失败的情况下,创建空值数据并作为对应子业务接口的业务响应数据。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-8任一所述的方法步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210744042.0A CN115080272A (zh) | 2022-06-28 | 2022-06-28 | 一种业务数据处理方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210744042.0A CN115080272A (zh) | 2022-06-28 | 2022-06-28 | 一种业务数据处理方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115080272A true CN115080272A (zh) | 2022-09-20 |
Family
ID=83254735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210744042.0A Pending CN115080272A (zh) | 2022-06-28 | 2022-06-28 | 一种业务数据处理方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115080272A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115712778A (zh) * | 2022-11-29 | 2023-02-24 | 四川虹魔方网络科技有限公司 | 一种精细化分组运营优化方法及系统 |
CN116109112A (zh) * | 2023-04-12 | 2023-05-12 | 徐工汉云技术股份有限公司 | 基于聚合接口的业务数据处理方法、装置、介质和设备 |
-
2022
- 2022-06-28 CN CN202210744042.0A patent/CN115080272A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115712778A (zh) * | 2022-11-29 | 2023-02-24 | 四川虹魔方网络科技有限公司 | 一种精细化分组运营优化方法及系统 |
CN115712778B (zh) * | 2022-11-29 | 2023-09-01 | 四川虹魔方网络科技有限公司 | 一种精细化分组运营优化方法及系统 |
CN116109112A (zh) * | 2023-04-12 | 2023-05-12 | 徐工汉云技术股份有限公司 | 基于聚合接口的业务数据处理方法、装置、介质和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111314459B (zh) | 一种业务请求方法、装置、电子设备及存储介质 | |
CN115080272A (zh) | 一种业务数据处理方法、电子设备及存储介质 | |
CN110413650B (zh) | 一种业务数据的处理方法、装置、设备和存储介质 | |
RU2630380C9 (ru) | Система и способ пуша (push) рекламы, основанные на домашнем шлюзе | |
CN103338243A (zh) | Web节点的缓存数据更新方法和系统 | |
US20070112812A1 (en) | System and method for writing data to a directory | |
CN110851290A (zh) | 一种数据同步方法、装置、电子设备及存储介质 | |
US20100332532A1 (en) | Distributed directory environment using clustered ldap servers | |
CN110837409A (zh) | 一种定时执行任务的方法和系统 | |
US20230409527A1 (en) | Method And System For Deleting Obsolete Files From A File System | |
CN111382206B (zh) | 一种数据存储方法及装置 | |
CN110311975B (zh) | 一种数据请求处理方法及装置 | |
CN101778131A (zh) | 数据同步系统 | |
CN113315852B (zh) | 一种域名解析的方法、装置及系统 | |
CN101789963A (zh) | 数据同步系统 | |
CN111367691B (zh) | 数据反馈方法及装置、电子设备和可存储介质 | |
US20110060788A1 (en) | System and method for automatically providing metadata elements on a web page or web site | |
JP2002368781A (ja) | ユーザ位置管理ドメインネーム変換システム | |
CN110955460A (zh) | 一种服务进程启动方法、装置、电子设备和存储介质 | |
CN113612811B (zh) | 一种在多通道中客户端挂载的方法、系统、设备及介质 | |
CN113542409B (zh) | 一种RocketMQ消息队列实例管理系统及处理方法 | |
CN113138943B (zh) | 一种处理请求的方法和装置 | |
US20050076135A1 (en) | UDDI web service registry system based on an ebXML registry and management method therefor | |
CN110083509B (zh) | 一种日志数据的规整方法及装置 | |
US20200195720A1 (en) | Communication device and communication method for processing meta data |
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 |