业务信息查询处理方法、系统、计算机设备和存储介质与流程

文档序号:17160616发布日期:2019-03-20 00:39阅读:233来源:国知局
业务信息查询处理方法、系统、计算机设备和存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种业务信息查询处理方法、系统、计算机设备和存储介质。



背景技术:

随着计算机技术的发展,涌现出了多种基础架构。通过基础架构可以设计相应的综合业务系统,基础框架也有其自身的局限,业务功能也受到限制。例如,通过pafa(pinganfoundationarchitecture,平安基础架构)这一基础架构,可以定义一系列的业务流程和通用功能。但是受到pafa框架的限制,业务信息的查询每次只能得到1万条记录,如果想得到更多的记录,则需要多次设置不同的进行多次查询,由此导致业务信息的查询效率较低。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够有效提高业务信息的查询效率的业务信息查询处理方法、系统、计算机设备和存储介质。

一种业务信息查询处理方法,所述方法包括:

主节点接收终端发送的查询请求,利用所述查询请求生成查询任务;

所述主节点将所述查询任务拆分为多个子任务;

所述主节点轮询多个从节点的负载权重,通过权重平滑处理得到与子任务相适应的从节点;所述从节点根据子任务进行查询,返回相应的业务信息;

针对所述多个子任务中的任一子任务,所述主节点将多个从节点返回的业务信息进行封装,生成与所述查询任务对应的查询结果;

所述主节点将所述查询结果返回至终端。

在其中一个实施例中,所述查询任务对应多个预设查询条件;所述主节点将所述查询任务拆分为多个子任务包括:

所述主节点获取多个预设查询条件对应的优先级;

所述主节点按照优先级的级别顺序以及预设查询条件,对查询任务进行拆分,生成多个子任务;

所述主节点记录子任务的数量以及每个子任务的任务标识。

在其中一个实施例中,在所述主节点接收终端发送的查询请求之前,还包括:

所述主节点获取多种预设拆分规则对应的任务拆分代码;

所述主节点对所述任务拆分代码进行编译,得到相应的任务拆分机器码;

所述主节点将所述查询任务拆分为多个子任务包括:调用所述任务拆分机器码,通过所述任务拆分机器码对所述查询任务进行拆分,得到多个子任务。

在其中一个实施例中,所述主节点对所述任务拆分代码进行编译,得到相应的任务拆分机器码包括:

所述主节点读取第一配置文件,所述第一配置文件中记录了与所述任务分匹配代码对应的java关键字以及非java关键字;

所述主节点读取第二配置文件,所述第二配置文件中记录了与所述java关键字的功能;

所述主节点利用所述第一配置文件,将第一数据库中任务拆分代码的非java关键字替换为对应的java关键字;

所述主节点根据所述第二配置文件中java关键字的功能,将替换关键字后的任务拆分代码转换为支持java的任务拆分机器码,将转换后得到的支持java的任务拆分机器码存入第二数据库。

在其中一个实施例中,所述主节点轮询多个从节点的负载权重,通过权重平滑处理得到与子任务相适应的从节点包括:

所述主节点根据所述从节点标识轮询多个从节点的当前负载权重,根据所述当前负载权重选择与子任务对应的从节点标识;

所述主节点对被选择的从节点标识对应的当前负载权重进行平滑处理,利用平滑处理后的结果选择下一个子任务对应的从节点标识;

所述主节点根据被选择的从节点标识将多个子任务依次分配至对应的从节点。

一种业务信息查询处理系统,所述系统包括:

主节点,用于接收终端发送的查询请求,利用所述查询请求生成查询任务;将所述查询任务拆分为多个子任务;针对所述多个子任务中的任一子任务,轮询多个从节点的负载权重,通过权重平滑处理得到与子任务相适应的从节点;

从节点,用于根据子任务进行查询,返回相应的业务信息;

所述主节点还用于将多个从节点返回的业务信息进行封装,生成与所述查询任务对应的查询结果;将所述查询结果返回至终端。

在其中一个实施例中,所述主节点还用于获取多个预设查询条件对应的优先级;按照优先级的级别顺序以及预设查询条件,对查询任务进行拆分,生成多个子任务;记录子任务的数量以及每个子任务的任务标识。

在其中一个实施例中,所述主节点还用于获取多种预设拆分规则对应的任务拆分代码;对所述任务拆分代码进行编译,得到相应的任务拆分机器码;调用所述任务拆分机器码,通过所述任务拆分机器码对所述查询任务进行拆分,得到多个子任务。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述各个方法实施例中的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各个方法实施例中的步骤。

上述业务信息查询处理方法、系统、计算机设备和存储介质,当需要进行业务信息的查询时,可以通过终端向主节点发送查询请求。主节点根据查询请求生成相应的查询任务,将查询任务拆分为多个子任务。针对所述多个子任务中的任一子任务,主节点轮询多个从节点的负载权重,通过权重平滑处理得到与子任务相适应的从节点。多个从节点对分配到子任务并发进行查询,由此可以得到所需的业务信息。主节点将从节点查询到的业务信息进行封装,生成相应的查询结果,将查询结果返回至终端。由此终端只需一次查询即可得到所需的多种业务信息,无需多次查询,从而有效克服了基础框架的局限,提高了业务信息的查询效率。

附图说明

图1为一个实施例中业务信息查询处理方法的应用场景图;

图2为一个实施例中业务信息查询处理方法的流程示意图;

图3为另一个实施例中业务信息查询处理方法的流程示意图;

图4为一个实施例中业务信息查询处理系统的结构框图;

图5为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的业务信息查询处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器集群104进行通信。服务器集群中包括主节点和多个从节点。其中,主节点与终端之间建立通信连接,从节点与主节点之间建立通信连接。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。终端102需要查询业务信息时,可以将查询请求发送至服务器集群104。服务器集群104中的主节点接收该查询请求,利用查询请求生成相应的查询任务。主节点将查询任务拆分为多个子任务。主节点轮询多个从节点的负载权重,通过权重平滑处理得到与子任务相适应的从节点;从节点根据子任务进行查询,返回相应的业务信息。主节点将多个从节点返回的业务信息进行封装,生成与查询任务对应的查询结果。主节点将查询结果返回至终端102。终端只需一次查询即可得到所需的多种业务信息,无需多次查询,从而有效克服了基础框架的局限,提高了业务信息的查询效率。

在一个实施例中,如图2所示,提供了一种业务信息查询处理方法,以该方法应用于图1中服务器集群中的主节点为例进行说明,包括以下步骤:

步骤202,主节点接收终端发送的查询请求,并利用查询请求生成查询任务。

步骤204,主节点将查询任务拆分为多个子任务。

终端需要查询业务信息时,可以通过查询页面选择相应的查询条件,以此生成查询请求。终端将查询请求发送至服务器集群。服务器集群中包括主节点和多个从节点。其中,主节点与终端之间建立通信连接,从节点与主节点之间建立通信连接。主节点接收该查询请求,利用查询请求生成相应的查询任务。

为了有效提高查询效率,主节点可以根据预设查询条件将查询任务拆分为多个子任务,以便多个子任务可以并发进行查询。主节点获取多个预设查询条件对应的优先级;主节点按照优先级的级别顺序以及预设查询条件,对查询任务进行拆分,生成多个子任务;主节点记录子任务的数量以及每个子任务的任务标识。主节点将所有的子任务标识存入消息队列,采用先进先出的方式,将多个子任务分配至相应的从节点。

步骤206,针对多个子任务中的任一子任务,主节点轮询多个从节点的负载权重,通过权重平滑处理得到与子任务相适应的从节点;从节点根据子任务进行查询,返回相应的业务信息。

主节点根据节点列表获取多个从节点标识对应的当前负载权重,对多个从节点标识对应的当前负载权重进行遍历,得到最高负载权重。主节点将消息队列中的第一个子任务分配至最高负载权重的从节点,对分配子任务后的从节点的当前负载权重进行平滑处理。主节点根据平滑处理结果计算多个从节点标识对应的当前负载权重,得到最高当前负载权重,将消息队列中的下一个子任务分配至最高当前负载权重的从节点,得到下一个子任务对应的从节点标识。通过平滑处理可以对当前已分配子任务的从节点的资源消耗进行抵消,防止重复计算其负载权重,以此达到集群中多个从节点的负载均衡。

步骤208,主节点将多个从节点返回的业务信息进行封装,生成与查询任务对应的查询结果。

步骤210,主节点将查询结果返回至终端。

每个从节点都可以分配多个子任务,从节点对分配到的多个子任务并发执行查询,得到对应的业务信息。从节点可以对应任务标识将查询得到的业务信息返回至主节点。主节点将业务信息对应任务标识进行缓存,当接收到所有任务标识对应的业务信息时,主节点将多个从节点返回的业务信息进行封装,生成与查询任务对应的查询结果。在主节点对业务信息进行封装时,主节点可以根据子任务标识对应的查询结果按照预设查询条件的优先级进行封装。其中,主节点可以是按照优先级从高到低的顺序进行封装,也可以按照从低到高的顺序进行封装。主节点将封装后的查询结果返回至终端。

本实施例中,当需要进行业务信息的查询时,可以通过终端向主节点发送查询请求。主节点根据查询请求生成相应的查询任务,将查询任务拆分为多个子任务。针对多个子任务中的任一子任务,主节点轮询多个从节点的负载权重,通过权重平滑处理得到与子任务相适应的从节点。多个从节点对分配到子任务并发进行查询,由此可以得到所需的业务信息。主节点将从节点查询到的业务信息进行封装,生成相应的查询结果,将查询结果返回至终端。由此终端只需一次查询即可得到所需的多种业务信息,无需多次查询,从而有效克服了基础框架的局限,提高了业务信息的查询效率。

在一个实施例中,查询任务对应多个预设查询条件;主节点将查询任务拆分为多个子任务包括:主节点获取多个预设查询条件对应的优先级;主节点按照优先级的级别顺序以及预设查询条件,对查询任务进行拆分,生成多个子任务;主节点记录子任务的数量以及每个子任务的任务标识。

每个预设查询条件都可以被预先配置相应的优先级。主节点可以根据优先级对多个预设查询条件进行排序。主节点根据优先级的级别顺序对查询任务进行拆分。例如,预设查询条件中包括查询时间、机构、客户等级、客户归属地域等。优先级从高到低的顺序为机构、客户归属地域、客户等级、查询时间。查询任务中可以对应一个预设查询条件,也可以对应多个预设查询条件。主节点根据预设查询条件优先级从高到低的顺序对查询任务进行拆分,生成多个子任务。例如,预设查询条件为:1个月内10家机构的客户清单。主节点首先根据机构将查询任务进行拆分,拆分为10个子任务,再根据查询时间对每个子任务继续拆分,最终拆分得到40个子任务。

每个子任务都具有相应的任务标识,主节点在任务拆分之后,记录子任务的数量以及每个子任务的任务标识。主节点将所有的子任务标识存入消息队列,采用先进先出的方式,将多个子任务分配至相应的从节点。通过从节点可以对多个子任务并发进行查询,由此无需多次查询,即可以通过一次查询即可得到所有的业务信息,有效提高了业务信息的查询效率。

在一个实施例中,提供了一种业务信息查询处理方法,如图3所示,包括以下步骤:

步骤302,主节点获取多种预设拆分规则对应的任务拆分代码。

步骤304,主节点对任务拆分代码进行编译,得到相应的任务拆分机器码。

步骤306,主节点接收终端发送的查询请求,利用查询请求生成查询任务。

步骤308,主节点调用任务拆分机器码,通过任务拆分机器码对查询任务进行拆分,得到多个子任务。

步骤310,针对多个子任务中的任一子任务,主节点轮询多个从节点的负载权重,通过权重平滑处理得到与子任务相适应的从节点;从节点根据子任务进行查询,返回相应的业务信息。

步骤312,主节点将多个从节点返回的业务信息进行封装,生成与查询任务对应的查询结果。

步骤314,主节点将查询结果返回至终端。

在传统的方式中,主节点在拆分查询任务时,可以调用相应的任务拆分代码。主节点对任务拆分代码进行编译,生成相应的任务拆分机器码,主节点通过任务拆分机器码将查询任务进行拆分。

为了有效提高查询任务的拆分效率,本实施例中,主节点启动后,即对多种预设拆分规则对应的任务拆分代码进行编译,得到相应的任务拆分机器码。当主节点需要拆分查询任务时,可以直接根据预设拆分规则调用相应的任务拆分机器码。主节点可以将查询任务对应的多个预设查询条件作为任务拆分机器码的输入,任务拆分机器码进行运算,将查询任务拆分为多个子任务。

在这个过程中,由于任务拆分代码提前被编译为任务拆分机器码。在需要拆分查询任务时,可以直接调用相应的任务拆分机器码进行拆分。节省了编译任务拆分代码的时间,有效提高了查询任务的拆分效率。

进一步的,不同的查询任务,可以有不同的预设拆分规则。主节点还可以提前将多种预设拆分规则对应的任务拆分代码存入数据库。主节点将数据库中的多种任务拆分代码提前进行编译,将编译得到的任务拆分机器码对应预设拆分规则一并存入数据库中。当主节点启动时,访问该数据库,加载多种预设拆分规则对应的任务拆分机器码。当主节点需要拆分查询任务时,可以直接根据预设拆分规则调用相应的任务拆分机器码。主节点可以将查询任务中所携带的预设查询条件作为任务拆分机器码的输入,通过任务拆分机器码按照预设拆分规则进行运算,由此完成查询任务的拆分。由于预设拆分规则对应的任务拆分机器码在主节点启动之前即被编译,由此进一步节省编译任务拆分代码的时间,进一步提高了查询任务的拆分效率。

在一个实施例中,主节点对任务拆分代码进行编译,得到相应的任务拆分机器码包括:主节点读取第一配置文件,第一配置文件中记录了与任务分匹配代码对应的java关键字以及非java关键字;主节点读取第二配置文件,第二配置文件中记录了与java关键字的功能;主节点利用第一配置文件,将第一数据库中任务拆分代码的非java关键字替换为对应的java关键字;主节点根据第二配置文件中java关键字的功能,将替换关键字后的任务拆分代码转换为支持java的任务拆分机器码,将转换后得到的支持java的任务拆分机器码存入第二数据库。

多种预设拆分规则对应的任务拆分代码可以是采用不同的计算机语言提前编写的。例如,可以是采用c语言、c++、java以及python等计算语言编写的。为了便于开发人员进行统一的开发工作,需要将非java的任务拆分代码转换为java的任务拆分代码。

本实施例中,服务器集群中部署了多个数据库,数据库包括第一数据库和第二数据库。其中,第一数据库中存储了非java任务拆分代码(即除java之外的其他计算机语言的任务拆分代码),第二数据库中存储了java任务拆分代码。主节点中还存储了多个配置文件,配置文件包括第一配置文件以及第二配置文件。多个配置文件可以存储在第一数据库中,也可以存储在第二数据库中。第一配置文件中记录了多个java关键字以及相对应的非java关键字。第二配置文件中记录了每个java关键字的功能。

主节点利用第一配置文件,在第一数据库中对多种非java的任务拆分代码识别相应的非java关键字,将识别出的非java关键字替换为对应的java关键字。主节点根据第二配置文件中每个java关键字的功能,对替换关键字后的任务拆分代码进行转换,使得转换后的任务拆分代码为支持java的任务拆分代码。主节点对转换后的任务拆分代码进一步编译,生成支持java的任务拆分机器码。由此实现了将非java的任务拆分代码转换为java的任务拆分机器码,不仅为开发人员提供了方便,而且有效节省了任务代码编译时间,有助于提高查询任务拆分效率。

在一个实施例中,主节点轮询多个从节点的负载权重,通过权重平滑处理得到与子任务相适应的从节点包括:主节点根据从节点标识轮询多个从节点的当前负载权重,根据当前负载权重选择与子任务对应的从节点标识;主节点对被选择的从节点标识对应的当前负载权重进行平滑处理,利用平滑处理后的结果选择下一个子任务对应的从节点标识;主节点根据被选择的从节点标识将多个子任务依次分配至对应的从节点。

主节点根据平滑处理结果计算多个从节点标识对应的当前负载权重,得到最高当前负载权重,将消息队列中的下一个子任务分配至最高当前负载权重的从节点,得到下一个子任务对应的从节点标识。通过平滑处理可以对当前已分配子任务的从节点的资源消耗进行抵消,防止重复计算其负载权重,以此达到集群中多个从节点的负载均衡。

在其中一个实施例中,对分配子任务后的从节点的当前负载权重进行平滑处理的步骤包括:主节点根据节点列表获取多个从节点标识对应的初始负载权重;利用多个初始权重计算负载权重总和;利用负载权重总和最高负载权重对分配子任务后的从节点的当前负载权重进行平滑处理。

主节点可以根据集群中多个从节点的初始负载权重计算负载权重总和。在完成一个子任务的分配之后,主节点利用负载权重总和对最高负载权重进行平滑处理。具体的,主节点可以利用最高负载权重减去负载权重总和,对被分配子任务的从节点的当前负载权重进行平滑计算,得到平滑后的负载权重。通过平滑处理可以对当前已分配子任务的从节点的资源消耗进行抵消,防止重复计算其负载权重,以此达到集群中多个从节点的负载均衡。

应该理解的是,虽然图2和图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图4所示,提供了一种业务信息查询处理系统,包括:

主节点402,用于接收终端发送的查询请求,利用查询请求生成查询任务;将查询任务拆分为多个子任务;针对多个子任务中的任一子任务,轮询多个从节点的负载权重,通过权重平滑处理得到与子任务相适应的从节点404。

从节点404,用于根据子任务进行查询,返回相应的业务信息。

主节点402还用于将多个从节点返回的业务信息进行封装,生成与查询任务对应的查询结果;将查询结果返回至终端。

在一个实施例中,主节点402还用于获取多个预设查询条件对应的优先级;按照优先级的级别顺序以及预设查询条件,对查询任务进行拆分,生成多个子任务;记录子任务的数量以及每个子任务的任务标识。

在一个实施例中,主节点402还用于获取多种预设拆分规则对应的任务拆分代码;对任务拆分代码进行编译,得到相应的任务拆分机器码;调用任务拆分机器码,通过任务拆分机器码对查询任务进行拆分,得到多个子任务。

在一个实施例中,主节点402还用于读取第一配置文件,第一配置文件中记录了与任务分匹配代码对应的java关键字以及非java关键字;

读取第二配置文件,第二配置文件中记录了与java关键字的功能;利用第一配置文件,将第一数据库中任务拆分代码的非java关键字替换为对应的java关键字;根据第二配置文件中java关键字的功能,将替换关键字后的任务拆分代码转换为支持java的任务拆分机器码,将转换后得到的支持java的任务拆分机器码存入第二数据库。

在一个实施例中,主节点402还用于根据从节点标识轮询多个从节点的当前负载权重,根据当前负载权重选择与子任务对应的从节点标识;

对被选择的从节点标识对应的当前负载权重进行平滑处理,利用平滑处理后的结果选择下一个子任务对应的从节点标识;根据被选择的从节点标识将多个子任务依次分配至对应的从节点。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,服务器可以是服务器集群。服务器集群中包括主节点以及多个从节点。以主节点为例,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储供应商信息、员工信息等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述任一种业务信息查询处理方法。

本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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