数据发送对象的选择方法、装置、计算机设备及存储介质转让专利

申请号 : CN201710751997.8

文献号 : CN107682398B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 包晓华

申请人 : 平安科技(深圳)有限公司

摘要 :

本发明实施例提供一种数据发送对象的选择方法、装置、计算机设备及存储介质。该数据发送对象的选择方法包括:通过网络对外发送请求数据后,获取本端网络层返回的状态码,该状态码与该请求数据一一对应,该状态码用于表示该请求数据是否发送成功;获取该状态码对应请求数据所发送的目标设备的身份标识;当该状态码表示该请求数据发送成功时,对对应的身份标识进行加一计数,否则对对应的身份标识进行减一计数;接收到目标请求数据的发送指令时,将计数最小的身份标识对应的目标设备确定为目标请求数据的发送对象。本发明可以在不增加网络压力的基础上均衡负载。

权利要求 :

1.一种数据发送对象的选择方法,其特征在于,所述方法包括:通过网络对外发送请求数据后,获取本端网络层返回的状态码,所述状态码与所述请求数据一一对应,所述状态码用于表示所述请求数据是否发送成功;

获取所述状态码对应请求数据所发送的目标设备的身份标识;

当所述状态码表示所述请求数据发送成功时,对对应的身份标识进行加一计数,否则对对应的身份标识进行减一计数;

接收到目标请求数据的发送指令时,将计数最小的身份标识对应的目标设备确定为所述目标请求数据的发送对象;

所述请求数据的来源不包括用于计数单独生成的数据。

2.根据权利要求1所述的方法,其特征在于,在所述将计数最小的身份标识对应的目标设备确定为所述目标请求数据的发送对象的步骤之前,所述方法还包括:获取对每个身份标识对应预设的权值,所述权值为大于零的自然数;

计算每个身份标识的计数结果与对应权值的商值;

所述将计数最小的身份标识对应的目标设备确定为所述目标请求数据的发送对象的步骤进一步为:将计算的商值最小的身份标识对应的目标设备确定为所述目标请求数据的发送对象。

3.根据权利要求1或2所述的方法,其特征在于,在确定所述目标请求数据的发送对象的步骤之后,所述方法还包括:将所述目标请求数据通过网络发送给确定的所述目标设备;

获取本端网络层返回的与所述目标请求数据对应的状态码;

当所述状态码表示所述目标请求数据发送成功时,对所述目标请求数据的目标设备的身份标识进行加一计数,否则,对所述目标请求数据的目标设备的身份标识进行减一计数。

4.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:将所述目标请求数据通过网络发送给确定的所述目标设备时,将所述目标请求数据保存并启动预设时间段内的倒计时;

当在所述倒计时结束之前接收到所述目标请求数据的应答数据时,将对应的目标请求数据删除,当所述倒计时已结束但未接收到所述目标请求数据的应答数据时,则将所述目标请求数据发送给其它目标设备。

5.根据权利要求4所述的方法,其特征在于,在将所述目标请求数据保存的步骤之前,所述方法还包括:当所述请求数据携带有重要标识时,将所述目标请求数据保存并启动所述预设时间段内的倒计时。

6.一种数据发送对象的选择装置,其特征在于,所述装置包括:状态码获取模块,用于通过网络对外发送请求数据后,获取本端网络层返回的状态码,所述状态码与所述请求数据一一对应,所述状态码用于表示所述请求数据是否发送成功;

标识获取模块,用于获取所述状态码对应请求数据所发送的目标设备的身份标识;

计数模块,用于当所述状态码表示所述请求数据发送成功时,对对应的身份标识进行加一计数,否则对对应的身份标识进行减一计数;

对象确定模块,用于接收到目标请求数据的发送指令时,将计数最小的身份标识对应的目标设备确定为所述目标请求数据的发送对象;

所述请求数据的来源不包括用于计数单独生成的数据。

7.根据权利要求6所述的装置,其特征在于,所述装置还包括:权值获取模块,用于获取对每个身份标识对应预设的权值,所述权值为大于零的自然数;

计算模块,用于计算每个身份标识的计数结果与对应权值的商值;

所述对象确定模块具体用于:将计算的商值最小的身份标识对应的目标设备确定为所述目标请求数据的发送对象。

8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5中任一项的数据发送对象的选择方法。

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至5任一项所述方法中的步骤。

说明书 :

数据发送对象的选择方法、装置、计算机设备及存储介质

技术领域

[0001] 本发明涉及计算机技术领域,特别是涉及数据发送对象的选择方法、装置、计算机设备及存储介质。

背景技术

[0002] 目前对于网络传输中的应用节点和服务节点之间的通信,应用节点与服务节点之间一般是通过心跳或者请求数据的反馈结果来判断某个网络节点的负载,需要通信的双方通过网络数据传输来确定某个设备的负载,当某个设备的负载过大时,通过拒绝响应的方式来均衡负载。
[0003] 传统的这种均衡负载的方式需要通信双方进行有效的数据传输,增加了不必要的数据传输,给网络制造额外的压力,当网络压力过大时会导致消息阻塞、丢包等情况,也会使得请求方需要更多的线程、内存、消息队列等资源去维护链接池中双端服务器等的链接状态,占用请求方服务器资源,影响数据请求的准备效率。

发明内容

[0004] 本发明实施例提供数据发送对象的选择方法、装置、计算机设备及存储介质,一方面可以减少不必要的网络传输,降低网络压力,另一方面还可以做到负载均衡。
[0005] 一种数据发送对象的选择方法,该方法包括:
[0006] 通过网络对外发送请求数据后,获取本端网络层返回的状态码,该状态码与该请求数据一一对应,该状态码用于表示该请求数据是否发送成功;
[0007] 获取该状态码对应请求数据所发送的目标设备的身份标识;
[0008] 当该状态码表示该请求数据发送成功时,对对应的身份标识进行加一计数,否则对对应的身份标识进行减一计数;
[0009] 接收到目标请求数据的发送指令时,将计数最小的身份标识对应的目标设备确定为该目标请求数据的发送对象。
[0010] 进一步地,在该将计数最小的身份标识对应的目标设备确定为目标请求数据的发送对象的步骤之前,该方法还包括:
[0011] 获取对每个身份标识对应预设的权值,该权值为大于零的自然数;
[0012] 计算每个身份标识的计数结果与对应权值的商值;
[0013] 该将计数最小的身份标识对应的目标设备确定为目标请求数据的发送对象的步骤具体为:
[0014] 将计算的商值最小的身份标识对应的目标设备确定为目标请求数据的发送对象。
[0015] 进一步地,在确定目标请求数据的发送对象的步骤之后,该方法还包括:
[0016] 将该目标请求数据通过网络发送给确定的该目标设备;
[0017] 获取本端网络层返回的与目标请求数据对应的状态码;
[0018] 当该状态码表示该目标请求数据发送成功时,对该目标请求数据的目标设备的身份标识进行加一计数,否则,对该目标请求数据的目标设备的身份标识进行减一计数。
[0019] 进一步地,该方法还包括:
[0020] 将该目标请求数据通过网络发送给确定的该目标设备时,将该目标请求数据保存并启动预设时间段内的倒计时;
[0021] 当在该倒计时结束之前接收到该目标请求数据的应答数据时,将对应的目标请求数据删除,当该倒计时已结束但未接收到该目标请求数据的应答数据,则将该目标请求数据发送给其它目标设备。
[0022] 进一步地,在将该请求数据保存的步骤之前,该方法还包括:
[0023] 当该目标请求数据携带有重要标识时,将该目标请求数据保存并启动该预设时间段内的倒计时。
[0024] 进一步地,该请求数据的来源不包括用于计数单独生成的数据。
[0025] 一种数据发送对象的选择装置,该装置包括:
[0026] 状态码获取模块,用于通过网络对外发送请求数据后,获取本端网络层返回的状态码,该状态码与该请求数据一一对应,该状态码用于表示该请求数据是否发送成功;
[0027] 标识获取模块,用于获取该状态码对应请求数据所发送的目标设备的身份标识;
[0028] 计数模块,用于当该状态码表示该请求数据发送成功时,对对应的身份标识进行加一计数,否则对对应的身份标识进行减一计数;
[0029] 对象确定模块,用于接收到目标请求数据的发送指令时,将计数最小的身份标识对应的目标设备确定为目标请求数据的发送对象。
[0030] 该装置还包括:
[0031] 权值获取模块,用于获取对每个身份标识对应预设的权值,该权值为大于零的自然数;
[0032] 计算模块,用于计算每个身份标识的计数结果与对应权值的商值;
[0033] 该对象确定模块具体用于:将计算的商值最小的身份标识对应的目标设备确定为目标请求数据的发送对象。
[0034] 一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现上述数据发送对象的选择方法。
[0035] 一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述数据发送对象的选择方法中的步骤。
[0036] 本发明通过利用本端网络层回馈的状态码来对对应的目标设备的身份标识进行加一或减一的计数,通过该状态码即可判断对应的请求数据是否发送成功,当发送成功时对对应的目标设备进行加一计数,否则进行减一计数,目标设备的计数越多则表示该目标设备的负载越大,对于目标设备的负载情况的判断是根据本端反馈的状态码做出的,不需要给网络制造额外的数据传输,从而可以减少网络压力,将目标请求数据发送给计数最小的目标设备,即通过将目标请求数据发送给负载最小的目标设备从而实现目标设备的负载均衡,且在实现负载均衡时是不向负载大的目标设备发送请求数据,而不是传统技术中的向负载大的目标设备发送请求数据、在收到拒绝响应的应答消息后再将该请求数据发给其它负载较小的目标设备,进一步减少了网络中不必要的数据传输,且无需负载较大的目标设备开启额外的进程去响应该拒绝应答的消息,也降低了负载较大的目标设备的负担。

附图说明

[0037] 图1为根据本发明的一个实施例的数据发送对象的选择方法的流程图;
[0038] 图2为根据本发明的另一实施例的数据发送对象的选择方法的流程图;
[0039] 图3为根据本发明的又一实施例的数据发送对象的选择方法的流程图;
[0040] 图4为根据本发明的一个实施例的数据发送对象的选择装置的示范性结构框图;
[0041] 图5为根据本发明的一个实施例的计算机设备的内部结构示意图。

具体实施方式

[0042] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0043] 图1为根据本发明的一个实施例的数据发送对象的选择方法的流程图,下面结合图1来详细描述根据本发明的一个实施例的数据发送对象的选择方法,如图1所示,该数据发送对象的选择方法包括以下步骤S101、S102、S103及S104。
[0044] S101、通过网络对外发送请求数据后,获取本端网络层返回的状态码,该状态码与该请求数据一一对应,该状态码用于表示该请求数据是否发送成功。
[0045] 根据本实施例的一个示例,返回的状态码为“00”时,表示该请求数据发送成功,当返回的状态码为其它码时,表示请求数据发送失败,其中。该状态码为本端网络层根据TCP协议向本端返回的状态码,在不同的系统中使用根据本实施例提供的数据发送对象的选择方法时,在TCP协议层返回的状态码是相同的,但是在应用层用户可以根据系统的需求与特色,将TCP协议的网络层返回的状态码映射到应用层,例如,可将应用层的“Y”字符映射该状态码“00”,将应用层的“N”映射网络层返回的其它状态码。
[0046] 在TCP协议的网络层应用中,每对外发送一个请求数据,网络层都会反馈一个与该请求数据对应的状态码,以确定该请求数据是否发送成功。
[0047] S102、获取该状态码对应请求数据所发送的目标设备的身份标识。
[0048] 根据本实施例的一个示例,该目标设备的身份标识可以是该目标设备的MAC((Media Access Control或者Medium Access Control))物理地址,还可以是该目标设备的IP地址,还可以是该目标设备的其它唯一标识符。
[0049] 在其中的一个实施例中,上述步骤S102中“获取本端网络层返回的状态码”进一步为“获取本端网络层在预设的第一时间段内返回的状态码”。
[0050] 在该步骤中,上述的预设的第一时间段为检测哪个设备更为适合目标请求数据的发送对象的时间段,该第一时间段的确定可以由程序员预写入进行设置,上述预设的第一时间段作为负载检测的时间段,可以根据实际的业务需求进行设置,例如可以设置自开始时间起一天之内,也可以选择为工作时间段,例如9:00am~6:00pm,或者是自开始时间起一周或一个月之内,其中,该开始时间可以是当前时间,也可以是程序员设置的其它时间,当应用端的平时的数据请求量非常大时,可以将该第一时间段设置的短一些,以避免占用应用端过多的内存,在此不做限制。
[0051] 利用预设的第一时间段来限定有效的状态码可以避免历史请求数据的量特别大时,占用本端过多的资源,也使得在目标设备的数量或身份标识进行了变更时,避免只通过在历史数据往来中确定目标设备造成的无法选择新的身份标识对应的目标设备的缺陷。
[0052] 根据本实施例的一个示例,在该步骤S102的步骤之前,该数据发送对象的选择方法还包括:
[0053] S103、当该状态码表示该请求数据发送成功时,对对应的身份标识进行加一计数,否则对对应的身份标识进行减一计数。
[0054] 根据本实施例的一个示例,在该步骤S103的步骤之前,该数据发送对象的选择方法还包括:将与本端进行网络连接的具有相同业务能力的目标设备的计数结果计为零。
[0055] 其中,具有相同业务处理能力的目标设备例如均处理自动核保业务服务器,以使得该目标请求数据不论发送给那个目标设备进行处理,对应的目标设备都具有处理该请求数据的能力。
[0056] 一般而言,对于同一业务的请求数据的重定向对象可以不同,当业务请求量巨大时,需要通过多个具有对应业务处理能力的服务器来进行处理,具体需要将该请求数据发送给哪个服务器进行处理就是根据本发明的一个实施例的数据请求发送对象的选择方法所做的事情。
[0057] 通过在将与本端进行网络连接的具有相同业务能力的目标设备的计数结果计为零,使得可以在上述预设的第一时段开始时,可以通过将新的身份标识对应的目标设备纳入计数的对象之内,使得在目标设备的数量或身份标识进行了变更时,避免只通过在历史数据往来中确定目标设备造成的无法选择新的身份标识对应的目标设备的缺陷。
[0058] 其中,在该步骤中对对应的身份标识进行加一或减一的计数用于确定该身份标识对应的目标设备的负载,向同一身份标识对应的目标设备发送的请求数据越多,隐含的可以表示该身份标识对应的目标设备的负载越大,对应的,向同一身份标识对应的目标设备发送的请求数据的数量越少,也可以隐含表示该身份标识对应的目标设备的负载越小。
[0059] S104、接收到目标请求数据的发送指令时,将计数最小的身份标识对应的目标设备确定为目标请求数据的发送对象。
[0060] 在该实施例的步骤S104中,通过将计数最小的身份标识对应的目标设备确定为该目标请求数据的发送对象,使得该目标请求数据在发送时可以发送给计数最小的身份标识对应的目标设备,使得负载最小的目标设备处理该目标请求数据,从而实现负载均衡。
[0061] 根据本实施例的一个示例,上述步骤中的请求数据以及该步骤S101中的通过网络对外发送的请求数据为当前已存在的任意真实有效的请求数据,不是为了所述加一计数或减一计数而另外生成的数据,即不是为了对某个目标设备进行负载检测而专门生成的数据,该已经存在的请求数据例如用户在登录某个应用的账号时,向服务器端发送账号登录的历史请求数据,再例如在需要调用服务器资源时,向服务器发送的资源请求数据等等。
[0062] 在其中的一个实施例中,通过对上述请求数据发送状态的判断来决定目标请求数据的发送对象,本实施例将目标请求数据发送给计数最小的身份标识所对应的目标设备,以均衡各个设备的负载。
[0063] 在传统技术的任务检测中,为了测试等需求,需要专门生成为了测试对应任务的数据,而在本发明的该实例中,将已经存在的请求数据直接用来判断对应目标设备的负载,不需要本端另外生成检测对端目标设备的请求数据,可以大大降低负载检测的资源消耗。
[0064] 进一步地,在上述步骤S104的步骤之后,该数据发送对象的选择方法还包括以下步骤(1)至(4)。
[0065] (1)、将该目标请求数据通过网络发送给确定的该目标设备,在该实施例中,该“确定的该目标设备”可以是通过上述步骤S104确定的目标设备。
[0066] 在该实施例中,该步骤(1)中所述的“确定的目标设备”为通过上述步骤S104所确定的目标设备。
[0067] (2)、获取本端网络层返回的与目标请求数据对应的状态码。
[0068] (3)、当该状态码表示该目标请求数据发送成功时,对该目标请求数据的目标设备的身份标识进行加一计数,否则,对该目标请求数据的目标设备的身份标识进行减一计数。
[0069] 本实施例根据所述状态码及所述身份标识,对所述目标请求数据的目标设备的身份标识进行计数,所述状态码为与所述目标请求数据对应的状态码,所述身份标识为所述目标请求数据的目标设备的身份标识。
[0070] 在该实施例中,当上述步骤(2)中返回的状态码为表示目标请求数据发送成功的状态码时,对该目标请求数据的发送对象的身份标识进行加一计数,当上述步骤(2)中返回的状态码为表示目标请求数据发送失败的状态码时,对该目标请求数据的发送对象的身份标识进行减一计数。
[0071] 本实施例通过将该目标请求数据的发送对象纳入计数的范围之内,使得该数据发送对象的选择方法可以循环进行,可以根据已经存在的真实有效的请求数据的发送情况自动更新各个目标设备的计数结果。
[0072] 图2为根据本发明的另一实施例的数据发送对象的选择方法的流程图,如图2所示的数据发送对象的选择方法,该方法在包括上述步骤S101、S102及S103的基础上,还包括以下步骤S201及S202。
[0073] S201、获取对每个身份标识对应预设的权值,该权值为大于零的自然数。
[0074] 根据本实施例的一个示例,该权值为大于零的自然数例如为1、2、3、4、或5等等。
[0075] 在该实施例中,对一个目标设备预设的权值越大表示该目标设备的处理能力越强,用户可以根据各个目标设备的业务处理能力预设对应的权值,其中,用户可以将业务处理能力较强的目标设备预设较大的权值,对业务处理能力较弱的目标设备预设较小的权值。
[0076] S202、计算每个身份标识的计数结果与对应权值的商值。
[0077] 其中,上述步骤S104具体为下述步骤S203:
[0078] S203、接收到目标请求数据的发送指令时,将计算的商值最小的身份标识对应的目标设备确定为目标请求数据的发送对象。
[0079] 根据本实施例的一个使用场景例如:对目标设备A的身份标识的计数结果为100,目标设备A的权值为4,对目标设备B的身份标识的技术结果为80,目标设备B的权值为2,则目标设备A的商值为25,目标设备B的商值为40,虽然目标设备A的计数结果高于目标设备B,但是目标设备A的商值小于目标设备B,故则将该目标请求数据发送给目标设备A。
[0080] 本实施例通过对各个目标设备预设其相应的权值,使得具有较强处理能力的目标设备可以处理更多的请求数据,以使得不会造成资源浪费。
[0081] 根据本实施例的另一示例,在上述步骤S203的步骤之后,该数据发送对象的选择方法还包括以下步骤1至步骤4:
[0082] 1、将该目标请求数据通过网络发送给确定的该目标设备。
[0083] 2、获取本端网络层返回的与目标请求数据对应的状态码。
[0084] 3、当目标请求数据的发送时间在预设的第一时间段内时,将与目标请求数据对应的状态码确定为状态码。
[0085] 4、根据所述状态码及所述身份标识,对所述目标请求数据的目标设备的身份标识进行计数,所述状态码为与所述目标请求数据对应的状态码,所述身份标识为所述目标请求数据的目标设备的身份标识。
[0086] 在该实施例中,上述步骤1中的“确定的该目标设备”为通过上述步骤S203确定的目标设备,当上述步骤2中返回的状态码为表示目标请求数据发送成功的状态码时,对该目标请求数据的发送对象的身份标识进行加一计数,当上述步骤2中返回的状态码为表示目标请求数据发送失败的状态码时,对该目标请求数据的发送对象的身份标识进行减一计数。
[0087] 本实施例通过将该目标请求数据的发送对象纳入计数的范围之内,使得该数据发送对象的选择方法可以循环进行,可以根据已经存在的真实有效的请求数据的发送情况自动更新各个目标设备的计数结果。
[0088] 图3为根据本发明的又一实施例的数据发送对象的选择方法的流程图,如图3所示的数据发送对象的选择方法,该方法包括上述步骤S101至S104的基础上还包括以下步骤S301及S302。
[0089] S301、将该目标请求数据通过网络发送给确定的该目标设备时,将该目标请求数据保存并启动预设时间段内的倒计时。
[0090] 根据本实施例的一个示例,该第二时间段的长短程序员可以根据实际的需求及本端设备的存储空间进行适应性调节,当本端设备的存储空间足够大时,可以将该第二时间段设置的长一些,当本端的存储空间容量有限时,可以将该第二时间段设置的短一些。进一步地,该第二时间段的起始时间为该目标请求数据的发送时间。
[0091] S302、当在该倒计时结束之前接收到该目标请求数据的应答数据时,将对应的目标请求数据删除,当该倒计时已结束但未接收到该目标请求数据的应答数据,则将该目标请求数据发送给其它目标设备。
[0092] 根据本实施例的一个示例,该步骤S302中的其它目标设备表示除通过上述步骤S104或S203确定的目标设备的其它目标设备,进一步地,该步骤S302还包括:
[0093] 将计数次小的身份标识对应的目标设备确定为所述其它目标设备,或;
[0094] 将计算的商值次小的身份标识对应的目标设备确定为所述其它目标设备。
[0095] 在该实施例中,还包括将各个目标设备的身份标识按照计数结果由小到大的顺序进行排序,然后将计数结果最小的身份标识对应的目标设备确定为目标请求数据的发送对象,将计数结果第二小的身份标识对应的目标设备确定为该步骤S302中的其它目标设备。
[0096] 在另一个实施例中,还包括将各个目标设备的身份标识按照商值由小到大的顺序进行排序,然后将商值最小的身份标识对应的目标设备确定为目标请求数据的发送对象,将商值第二小的身份标识对应的目标设备确定为该步骤S302中的其它目标设备。
[0097] 本实施例通过对已发送的目标请求数据做一个一段时间内的维护工作,避免当确定的目标请求数据的发送对象没有处理该目标请求数据的能力时,本端无法及时发现,以致使系统无法对该请求数据做出应答,本实施例通过将已经发送的请求数据保存一段时间,并在该时间段计时结束且未收到该请求数据的应答数据时,通过将该目标请求数据发送给其它目标设备以让其它目标设备继续处理该请求数据。
[0098] 根据本实施例的一个示例,在将该请求数据保存的步骤之前,该方法还包括:
[0099] 判断该目标请求数据是否携带重要标识,若是,则将该目标请求数据保存并启动预设时间段内的倒计时,该重要标识表示该目标请求数据为重要的请求数据。
[0100] 在该实施例中,程序员可以根据需求对不同的任务处理进行分类,将重要的任务处理与重要性不高的任务处理予以区分,使得系统可以对重要任务的目标请求数据自动添加重要标识。
[0101] 本实施例通过对存储的目标请求数据添加重要标识的限定,使得较为重要的目标请求数据才进行保存和倒计时,而不是对所有的请求数据均保存和维护,一方面使得重要的请求数据不会因为第一次确定的目标设备没有对应的处理能力而被延误或者忽略,另一方面,也是的对目标请求数据的维护不会占用过多的内存和线程等资源。
[0102] 根据本实施例的一个示例,上述步骤S101~S302的标号并不用于限定本实施例中各个步骤的先后顺序,各个步骤的编号只是为了使得描述各个步骤时可以通用引用该步骤的标号进行便捷的指代,例如上述步骤S201可以在S103的步骤之后,也可以在步骤S103的步骤之前,只要各个步骤执行的顺序不影响本实施例的逻辑关系即可确定在本申请请求保护的范围之内。
[0103] 图4为根据本发明的一个实施例的数据发送对象的选择装置的示范性结构框图,下面结合图4来详细描述根据本发明的一个实施例的数据发送对象的选择方法,如图4所示,该数据发送对象的选择装置10包括:
[0104] 状态码获取模块11,用于通过网络对外发送请求数据后,获取本端网络层返回的状态码,该状态码与该请求数据一一对应,该状态码用于表示该请求数据是否发送成功;
[0105] 标识获取模块12,用于获取该状态码对应请求数据所发送的目标设备的身份标识;
[0106] 计数模块13,用于当该状态码表示该请求数据发送成功时,对对应的身份标识进行加一计数,否则对对应的身份标识进行减一计数;
[0107] 对象确定模块14,用于接收到目标请求数据的发送指令时,将计数最小的身份标识对应的目标设备确定为目标请求数据的发送对象。
[0108] 在其中的一个实施例中,上述状态码获取模块具体用于通过网络对外发送请求数据后,获取本端网络层在预设的第一时间段内返回的状态码。
[0109] 其中,该对外发送的请求数据及该目标请求数据不是为了所述加一计数或减一计数而生成的数据,而是已存在的真实有效的请求数据,而不是为了对某个目标设备进行负载检测而专门生成的数据,该已经存在的请求数据例如用户在登录某个应用的账号时,向服务器端发送账号登录的历史请求数据,再例如在需要调用服务器资源时,向服务器发送的资源请求数据等等。
[0110] 在传统技术的任务检测中,为了测试等需求,需要专门生成为了测试对应任务的数据,而在本发明的该实例中,将已经存在的请求数据直接用来判断对应目标设备的负载,不需要本端另外生成检测对端目标设备的请求数据,可以大大降低负载检测的资源消耗。
[0111] 作为可选地,该计数模块13还用于将与本端进行网络连接的具有相同业务能力的目标设备的计数结果计为零。
[0112] 其中,具有相同业务处理能力的目标设备例如均处理自动核保业务服务器,以使得该目标请求数据不论发送给那个目标设备进行处理,对应的目标设备都具有处理该请求数据的能力。
[0113] 一般而言,对于同一业务的请求数据的重定向对象可以不同,当业务请求量巨大时,需要通过多个具有对应业务处理能力的服务器来进行处理,具体需要将该请求数据发送给哪个服务器进行处理就是根据本发明的一个实施例的数据请求发送对象的选择方法所做的事情。
[0114] 通过上述计数模块将与本端进行网络连接的具有相同业务能力的目标设备的计数结果计为零,使得可以在上述预设的第一时段开始时,可以通过将新的身份标识对应的目标设备纳入计数的对象之内,使得在目标设备的数量或身份标识进行了变更时,避免只通过在历史数据往来中确定目标设备造成的无法选择新的身份标识对应的目标设备的缺陷。
[0115] 进一步地,该数据发送对象的选择装置还包括:
[0116] 权值获取模块,用于获取对每个身份标识对应预设的权值,该权值为大于零的自然数;
[0117] 计算模块,用于计算每个身份标识的计数结果与对应权值的商值;
[0118] 该对象确定模块具体用于:将计算的商值最小的身份标识对应的目标设备确定为目标请求数据的发送对象。
[0119] 进一步地,该数据发送模块具体用于将计数次小的身份标识对应的目标设备确定为所述其它目标设备,或将计算的商值次小的身份标识对应的目标设备确定为所述其它目标设备。
[0120] 进一步地,该数据发送对象的选择装置还包括:
[0121] 数据发送模块,用于将该目标请求数据通过网络发送给确定的该目标设备。
[0122] 上述状态码获取模块还用于获取本端网络层返回的与目标请求数据对应的状态码。
[0123] 上述标识获取模块还用于获取本端网络层返回的与该目标请求数据对应的状态码。
[0124] 上述计数模块还用于当该状态码表示该目标请求数据发送成功时,对该目标请求数据的目标设备的身份标识进行加一计数,否则,对该目标请求数据的目标设备的身份标识进行减一计数,所述状态码为与所述目标请求数据对应的状态码,所述身份标识为所述目标请求数据的目标设备的身份标识。
[0125] 作为可选地,该数据发送对象的选择装置还包括:
[0126] 数据保存模块,用于将该目标请求数据通过网络发送给确定的该目标设备时,将该目标请求数据保存并启动预设时间段内的倒计时;
[0127] 数据删除模块,用于当在该倒计时结束之前接收到该目标请求数据的应答数据时,将对应的目标请求数据删除;
[0128] 上述数据发送模块还用于当该倒计时已结束但未接收到该目标请求数据的应答数据,则将该目标请求数据发送给其它目标设备。
[0129] 进一步作为可选地,该数据保存模块还包括:
[0130] 判断模块,用于判断该请求数据是否携带重要标识,若是,则将该目标请求数据保存并启动预设时间段内的倒计时,该重要标识表示该目标请求数据为重要的请求数据。
[0131] 本实施例通过数据保存模块、数据删除模块、数据发送模块对已发送的目标请求数据做一个一段时间内的维护工作,避免当确定的目标请求数据的发送对象没有处理该目标请求数据的能力时,本端无法及时发现,以致使系统无法对该请求数据做出应答,本实施例通过将已经发送的请求数据保存一段时间,并在该时间段计时结束且未收到该请求数据的应答数据时,通过将该目标请求数据发送给其它目标设备以让其它目标设备继续处理该请求数据。
[0132] 本实施例通过判断模块对存储的目标请求数据是否为重要请求数据予以判断,使得只有较为重要的目标请求数据才进行保存和倒计时,而不是对所有的请求数据均保存和维护,一方面使得重要的请求数据不会因为第一次确定的目标设备没有对应的处理能力而被延误或者忽略,另一方面,也是的对目标请求数据的维护不会占用过多的内存和线程等资源。
[0133] 进一步地,该数据发送对象的选择装置还包括:
[0134] 第一排序模块,用于将各个目标设备的身份标识按照计数结果由小到大的顺序进行排序;上述对象确定模块具体用于将计数结果最小的身份标识对应的目标设备确定为目标请求数据的发送对象,将计数结果第二小的身份标识对应的目标设备确定为上述的其它目标设备。
[0135] 第二排序模块,用于将各个目标设备的身份标识按照商值由小到大的顺序进行排序;上述对象确定模块具体用于将商值最小的身份标识对应的目标设备确定为目标请求数据的发送对象,将商值第二小的身份标识对应的目标设备确定为上述的其它目标设备。
[0136] 其中,该数据发送对象的选择装置中包括的各个模块可全部或部分通过软件、硬件或其组合来实现。进一步地,该数据发送对象的选择装置中的各个模块可以是用于实现对应功能的程序段。
[0137] 进一步地,上述的第一排序模块及第二排序模块中的“第一”和“第二”的意义仅在于将两个排序模块加以区分,并不用于限定哪个排序模块的优先级更高或者其它的限定意义。
[0138] 本实施例提供了一种数据发送对象的选择装置,通过该状态码即可判断对应的请求数据是否发送成功,对于目标设备的负载情况的判断是根据本端反馈的状态码做出的,不需要给网络制造额外的数据传输,从而可以减少网络压力,通过对象确定模块计数最小的目标设备确定为目标请求数据的发送对象,可以实现目标设备的负载均衡,且在实现负载均衡时是不向负载大的目标设备发送请求数据,而不是传统技术中的向负载大的目标设备发送请求数据、在收到拒绝响应的应答消息后再将该请求数据发给其它负载较小的目标设备,进一步减少了网络中不必要的数据传输,且无需负载较大的目标设备开启额外的进程去响应该拒绝应答的消息,也降低了负载较大的目标设备的负担。
[0139] 上述数据发送对象的选择装置可以实现为一种计算机程序的形式,计算机程序可以在如图5所示的计算机设备上运行。
[0140] 根据本发明的一个实施例提供的计算机设备,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行该程序时实现上述数据发送对象的选择方法。
[0141] 图5为根据本发明的一个实施例的计算机设备的内部结构示意图,该计算机设备可以为服务器。参照图5,该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、内存储器、输入装置、显示屏和网络接口。其中,该计算机设备的非易失性存储介质可存储操作系统和计算机可读指令,该计算机可读指令被执行时,可使得处理器执行本申请各实施例的一种数据发送对象的选择方法,该方法的具体实现过程可参考图1至3各实施例的具体内容,在此不再赘述。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该内存储器中可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种数据发送对象的选择方法。计算机设备的输入装置用于各个参数的输入,计算机设备的显示屏用于进行显示,计算机设备的网络接口用于进行网络通信。本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0142] 根据本发明的另一实施例提供的一种存储介质,该存储介质被设置为存储用于执行上述数据发送对象的选择方法中各个步骤的程序代码。
[0143] 根据本实施例的一个示例,上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。该存储介质包括但不限于磁碟、优盘、光盘、只读存储记忆体(Read-Only Memory,ROM)等。
[0144] 本实施例通过利用本端网络层回馈的状态码来对对应的目标设备的身份标识进行加一或减一的计数,通过该状态码即可判断对应的请求数据是否发送成功,当发送成功时对对应的目标设备进行加一计数,否则进行减一计数,目标设备的计数越多则表示该目标设备的负载越大,对于目标设备的负载情况的判断是根据本端反馈的状态码做出的,不需要给网络制造额外的数据传输,从而可以减少网络压力,将目标请求数据发送给计数最小的目标设备,即通过将目标请求数据发送给负载最小的目标设备从而实现目标设备的负载均衡,且在实现负载均衡时是不向负载大的目标设备发送请求数据,而不是传统技术中的向负载大的目标设备发送请求数据、在收到拒绝响应的应答消息后再将该请求数据发给其它负载较小的目标设备,进一步减少了网络中不必要的数据传输,且无需负载较大的目标设备开启额外的进程去响应该拒绝应答的消息,也降低了负载较大的目标设备的负担。
[0145] 以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0146] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。