一种调度方法及服务器的制造方法

文档序号:7798194阅读:125来源:国知局
一种调度方法及服务器的制造方法
【专利摘要】本发明实施例公开了一种调度方法及服务器,包括:接收客户端发送的第一数据请求信息,所述第一数据请求信息包括第一数据标识,所述第一数据请求信息用于获取所述第一数据标识所标识的目标数据;根据所述第一数据标识确定目标服务器,所述目标服务器存储所述目标数据;向所述目标服务器获取所述目标数据,并将所述目标数据返回至所述客户端。采用本发明,可实现根据第一数据请求信息中的数据标识查找到存储目标数据的目标服务器,查找方法简单,效率极高。
【专利说明】一种调度方法及服务器
【技术领域】
[0001]本发明涉及网络通信领域,尤其涉及一种调度方法及服务器。
【背景技术】
[0002]随着电子技术的发展,服务器的功能越来越强大,但是服务器资源与各种业务需求的调度也成为服务器的一个重要研究方向。通常需要设置一个调度服务器来对客户的各种业务需求进行调度,客户的各种业务需求一般由对应于该种业务的业务服务器提供相应的业务,例如对于影视业务则由提供影视业务的业务服务器提供。由于不同的业务对应不同的业务服务器,或者同一个业务对应不同的业务服务器,所以一个系统存在多个业务服务器,调度服务器则是根据客户所需求的业务,以及各个业务服务器当前的状态,从众多的业务服务器中调度出对应于客户所需求的业务服务器,并为相应的客户服务。现有的调度服务器进行调度的方法为,在网络层利用负载均衡算法,如Linux服务器集群系统(LVS,Linux Virtual Server)进行调度,首先在网络层获取传入调度服务器的数据包,然后将数据包中所携带的数据信息转化为数值,然后根据选定的固定算法,利用特定参数进行计算和调度,确定目标服务器,再把数据包转发给相应的目标服务器。因为传统的调度方法算法固定,不能直接根据所接收的数据信息进行调度,处理方法单一,不够灵活。

【发明内容】

[0003]本发明实施例提供一种调度方法及服务器,可实现根据第一数据请求信息中的数据标识确定存储目标数据的目标服务器,确定方法简单,处理方法灵活。
[0004]本发明实施例提供了一种调度方法,包括:
[0005]接收客户端发送的第一数据请求信息,所述第一数据请求信息包括第一数据标识,所述第一数据请求信息用于获取所述第一数据标识所标识的目标数据;
[0006]根据所述第一数据标识确定目标服务器,所述目标服务器存储所述目标数据;
[0007]向所述目标服务器获取所述目标数据,并将所述目标数据返回至所述客户端。
[0008]相应地,本发明实施例还提供了一种服务器,包括:
[0009]第一接收模块,用于接收客户端发送的第一数据请求信息,所述第一数据请求信息包括第一数据标识,所述第一数据请求信息用于获取所述第一数据标识所标识的目标数据;
[0010]确定模块,用于根据所述第一数据标识确定目标服务器,所述目标服务器存储所述目标数据;
[0011]获取返回模块,用于向所述目标服务器获取所述目标数据,并将所述目标数据返回至所述客户端。
[0012]本发明实施例中,根据第一数据请求信息中的数据标识确定存储目标数据的目标服务器,并向目标服务器获取所需要的目标数据,这种调度方法不需要进行固定的算法确定存储目标数据的目标服务器,简单易行,处理方法灵活。【专利附图】

【附图说明】
[0013]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0014]图1是本发明实施例提供的一种调度方法的流程示意图;
[0015]图2是本发明实施例提供的另一种调度方法的流程示意图;
[0016]图3是本发明实施例提供的又一种调度方法的流程示意图;
[0017]图4是本发明实施例提供的一种服务器的结构示意图;
[0018]图5是本发明实施例提供的另一种服务器的结构示意图;
[0019]图6是本发明实施例提供的一种确定模块的结构示意图;
[0020]图7是本发明实施例提供的一种获取返回模块的结构示意图。
【具体实施方式】
[0021]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0022]本发明实施例所述的调度方法可以实现在应用层,用户可以根据自己的需求具体的在应用层定义调度程序,本端服务器根据用户所定义的调度程序进行调度,本发明实施例中的服务器可以是虚拟服务器,目标服务器可以是真实服务器。
[0023]请参照图1,是本发明实施例提供的一种调度方法的流程示意图;如图1所述,本实施例所述的一种调度方法包括步骤:
[0024]S100,接收客户端发送的第一数据请求信息,所述第一数据请求信息包括第一数据标识,所述第一数据请求信息用于获取所述第一数据标识所标识的目标数据;
[0025]具体实施例中,当客户端需要获取相应的目标数据时,需要向服务器发送第一数据请求信息,服务器接收客户端所发送的第一数据请求信息,需要说明的是,第一数据请求信息是客户端用于获取目标数据所发送的,第一数据请求信息可以是以数据包的形式存在,服务器和客户端之间的交互信息方式可以是基于TCP数据连接,进一步的,第一数据请求信息中包括需要获取的目标数据的第一数据标识,该第一数据标识用于标识目标数据,在所有的客户端和服务器中,目标数据的第一数据标识是相同的,不同的目标数据的数据标识不同,数据标识是唯一的,需要说明的是,第一数据请求信息中还可以包括客户端的网络速度,需要请求的数据文件大小。
[0026]SlOl,根据所述第一数据标识确定目标服务器,所述目标服务器存储所述目标数据;
[0027]具体实施例中,本端服务器存储了所有数据标识以及每一个数据标识对应的目标服务器,数据标识与目标服务器的对应关系为,目标服务器存储了数据标识所标识的目标数据,具体的,本端存储所有数据标识以及每一个数据标识对应的目标服务器的方式可以是以数据库的方式进行存储,该数据库可以为任务数据库,在该任务数据库中存储每一个数据标识以及每一个数据标识对应的目标服务器的地址信息或者目标服务器的服务器标识,进一步的,在任务数据库中还存储了当前目标服务器的状态,例如当前目标服务器的剩余带宽或者当前目标服务器的负载等等;根据第一数据标识确定目标服务器的方法可以是,首先本端服务器获得了第一数据标识就可以在任务数据库中去查找第一数据标识对应的目标服务器,具体的查找方法可以是在任务数据库中遍历所有的数据标识,当查询到与第一数据标识匹配的数据标识时,就获取该数据标识对应的目标服务器的信息,因为一个数据标识可能对应多个目标服务器,所以查询到多个目标服务器信息,该目标服务器信息包括当前该目标服务器的剩余带宽以及当前负载情况,所以进一步结合各个目标服务器当前的负载情况以及剩余带宽确定最适合的目标服务器,并将该目标服务器确定为与第一数据标识对应的目标服务器。
[0028]S102,向所述目标服务器获取所述目标数据,并将所述目标数据返回至所述客户端。
[0029]具体实施例中,当获得了目标服务器的服务器标识或者目标服务器的地址信息,就可以向相应的目标服务器获取需要的目标数据,具体的获取方式可以是,首先与目标服务器建立数据连接,并利用已经建立的数据连接向目标服务器获取目标数据,目标服务器根据第一数据信息中的第一数据标识获取相应的目标数据,并将目标数据返回给服务器,当服务器接收到目标服务器所返回的目标数据时,则将所接收到的目标数据返回给客户端。
[0030]本发明实施例中,根据第一数据请求信息中的数据标识查找存储目标数据的目标服务器,并向目标服务器获取所需要的目标数据,这种调度方法不需要进行复杂的算法确定存储目标数据的目标服务器,简单易行,效率极高。
[0031]请参照图2,是本发明实施例提供的另一种调度方法的流程示意图;如图2所述,本实施例所述的一种调度方法包括步骤:
[0032]S200,与所述客户端建立TCP数据连接;
[0033]具体实施例中,当客户端需要获取目标数据时,首先需要与服务器建立TCP数据连接,需要说明的是,这里的服务器可以是虚拟服务器,该虚拟服务器的功能主要是进行任务调度,确定目标服务器。具体的,服务器与客户端建立TCP数据连接的方式是,接收客户端发送的握手信号SYN消息,服务器中的TCP处理模块保存SYN消息中的信息,该信息中可以包括客户端的IP地址,然后向客户端回复握手确认信号SYN/ACK消息,当客户端接收到SYN/ACK消息,再次回复连接确认信号ACK消息,TCP处理模块再次将所接收的ACK消息进行保存,至此,客户端与服务器之间的TCP数据连接建立完成。
[0034]S201,利用与所述客户端所建立的TCP数据连接接收客户端发送的第一数据请求信息。
[0035]具体实施例中,当客户端与服务器之间的TCP数据连接建立完成之后,则服务器利用所建立的TCP数据连接进行发送和接收信息,在本步骤中,服务器利用所建立的TCP数据连接接收客户端的第一数据请求信息,第一数据请求信息可以是以第一数据包的形式存在,所以当接收到第一数据包之后,去掉IP/TCP头,然后交给应用层进行分析和调度,确定目标服务器。[0036]S202,从所述第一数据请求信息中解析出第一数据标识;
[0037]具体实施例中,从第一数据请求信息中解析出第一数据标识的方法可以是,服务器的应用程序在本端的网络层解析出应用数据,然后利用共享内存将应用数据发送给应用层模块,应用层再从中解析出数据标识以及其他数据。
[0038]S203,在任务数据库中查询与所述第一数据标识对应的地址信息,并将所述地址信息表示的服务器作为所述目标服务器,所述任务数据库中存储至少一个数据标识以及每一个所述数据标识对应的地址信息。
[0039]具体实施例中,任务数据库中存储了所有的数据标识以及与每一个数据标识所对应的目标服务器的地址信息,根据该目标服务器的地址信息可以找到目标服务器,目标服务器存储了数据标识所标识的数据,所以根据数据标识对应的目标服务器的地址可以找到数据标识所标识的数据,具体的,任务数据库中,数据标识与地址信息的对应关系可以是一个数据标识对应一个地址信息,也可以是多个数据标识对应一个地址信息,即是该地址信息表示的服务器存储了多个数据标识所标识的数据。在任务数据库中遍历所有的数据标识,查询到与第一数据标识匹配的数据标识时,则获取该数据标识对应的地址信息,并作为第一数据标识对应的地址信息,该地址信息标识的服务器也即是目标服务器,该目标服务器存储了第一数据标识所标识的目标数据,需要说明的是,该地址信息可以是IP地址信肩、O
[0040]S204,将查询得到的与所述第一数据标识对应的地址信息添加至所述第一数据包中,并将所述地址信息作为所述第一数据包的目标地址;
[0041]具体实施例中,第一数据请求信息可以是以第一数据包的形式存在,第一数据包可以是IP数据包,地址信息可以是IP地址,这里以IP数据包和IP地址为例进行说明,在该IP数据包中存在该IP数据包的源IP地址,还存在该IP数据包的目标IP地址,从客户端接收到的IP数据包中的目标IP地址是本端服务器的IP地址。将从客户端所接收的IP数据包进行转发之前,需要修改IP数据包中的目标IP地址,所以将从任务数据库中所查询得到的与第一数据标识对应的地址信息添加至IP数据包中,具体的添加方式可以是修改IP数据包中的目标IP地址,将原来的本端服务器IP地址修改为查询到的与第一数据标识对应的IP地址。
[0042]S205,根据所述第一数据包的目标地址,将所述第一数据包发送至所述目标服务器,以使所述目标服务器根据所述第一数据标识查找所述第一数据标识所标识的目标数据,再由所述目标服务器返回所查找到所述目标数据;
[0043]具体实施例中,本端服务器与目标服务器的信息交互之前,本端服务器需要与目标服务器建立TCP数据连接,具体的建立方式可以是,根据目标服务器的地址信息,向目标服务器发送握手信号SYN消息,目标服务器中的TCP处理模块保存SYN消息中的信息,然后回复握手确认信号SYN/ACK消息,当本端服务器接收到SYN/ACK消息,再次回复连接确认信号ACK消息,至此,本端服务器与目标服务器之间的TCP数据连接建立完成,然后利用本端服务器与目标服务器之间所建立的TCP数据连接向目标服务器发送修改了目标地址的第一数据包,第一数据包到达目标服务器,目标服务器对所接收的第一数据包进行解析,读取第一数据包中所包含的第一数据标识,并在目标服务器中查找第一数据标识所标识的目标数据,将所查找到的目标数据返回至服务器。具体的,目标数据返回的方式可以是以IP数据包的形式进行返回。
[0044]S206,接收所述目标服务器所返回的所述目标数据,并将所述目标数据返回至所述客户端。
[0045]具体实施例中,本端服务器接收到目标服务器所返回的目标数据,目标数据的返回方式可以是以IP数据包的形式进行返回,当接收到目标服务器所返回的IP数据包时,从本端服务器查询客户端的IP地址,再次将IP数据包中的目标IP地址修改为客户端的IP地址,再次以IP数据包的形式发送至客户端。
[0046]S207,启动与备机之间的心跳线程,并利用所述心跳线程按照预设周期将本端的连接状态信息发送至所述备机;以使所述备机根据所述连接状态信息判断本端是否出现故障,若本端出现故障,则所述备机转换为主机模式。
[0047]具体实施例中,为了保证本端服务器在出现故障时,客户端与目标服务器之间的信息交互不会中断,可以为本端服务器配置备机,当本端服务器进行工作时,会启动心跳线程,按照预设周期将主机的连接状态信息发送至备机,因为数据传输频繁,可以为主备机各安装两块网卡,用其中一块网卡专门传输心跳,当主机出现故障时,连接状态信息可以反映,所以当备机从所接收的连接状态信息中判断出主机出现故障时,则备机应用层或者网络层进行调度,将任务调度至备机,备机变成主机模式,处理程序也变成主机模式,备机从存储区读取TCP/IP连接状态,继续服务,因为备机对于连接状态有保存,所以客户和目标服务器都不会发现主备切换。使用这种主备切换可以保证在本端服务器出现故障时,服务不会中断,提高了用户体验。
[0048]本发明实施例中,根据第一数据请求信息中的数据标识查找存储目标数据的目标服务器,并向目标服务器获取所需要的目标数据,这种调度方法不需要进行复杂的算法确定存储目标数据的目标服务器,简单易行,效率极高。
[0049]请参照图3,是本发明实施例提供的又一种调度方法的流程示意图;如图3所述,本实施例所述的一种调度方法包括步骤:
[0050]S300,接收客户端发送的第一数据请求信息,所述第一数据请求信息包括第一数据标识,所述第一数据请求信息用于获取所述第一数据标识所标识的目标数据;
[0051]具体实施例中,本发明实施例步骤S300,请参照图1所示的实施例步骤S100,在此不进行赘述。
[0052]S301,根据所述第一数据标识查找目标服务器,所述目标服务器存储所述目标数据;
[0053]具体实施例中,本发明实施例步骤S301,请参照图1所示的实施例步骤S101,在此不进行赘述。
[0054]S302,向所述目标服务器获取所述目标数据,并将所述目标数据返回至所述客户端。
[0055]具体实施例中,本发明实施例步骤S302,请参照图1所示的实施例步骤S102,在此不进行赘述。
[0056]S303,接收客户端发送的第二数据包,所述第二数据包包括第二数据标识;
[0057]具体实施例中,当客户端需要再次获取数据时,就发送第二数据包,本端服务器接收客户端所发送的第二数据包,客户端与服务器之间的信息交互可以是基于已经建立的TCP数据连接,也可以是基于重新建立的TCP数据连接,第二数据包可以是IP数据包,在该第二数据包中包括用于标识需要获取的目标数据的第二数据标识,本端服务器接收到客户端的第二数据包之后,对第二数据包进行解析,获取第二数据标识。
[0058]S304,若所述第二数据标识与所述第一数据标识相同,则将与所述第一数据标识对应的地址信息添加至所述第二数据包中,并将所述地址信息作为所述第二数据包的目标地址;
[0059]具体实施例中,若所解析出的第二数据标识与第一数据标识相同,则表明第一数据包和第二数据包需要到达的目标服务器相同,这时就不需要再次在任务数据库中查询第二数据标识对应的地址信息,而是直接将已经查询到的第一数据标识对应的地址信息添加到第二数据包中,在转发第二数据包的过程中,减少从任务数据库中查询地址信息的步骤,从而减少了转发时间,提高了效率,并且第二数据包也可以是以IP数据包的形式存在,所以直接将IP数据包中的目标IP地址修改为第一数据标识对应的IP地址。
[0060]S305,根据所述第二数据包的目标地址将所述第二数据包发送至所述目标服务器,以使所述目标服务器根据所述第二数据标识查找所述第二数据标识所标识的所述目标数据,并返回所查找到的所述目标数据;
[0061 ] 具体实施例中,向目标服务器发送第二数据包也可以基于TCP数据连接,这里的TCP数据连接可以是已经建立的TCP数据连接,也可以是重新建立的TCP数据连接,第二数据包可以是IP数据包,所以将第二数据包发送至目标服务器的方式可以是利用建立的TCP数据连接,并根据IP数据包中的目标IP地址将IP数据包发送至目标服务器。IP数据包到达目标服务器,目标服务器对所接收的IP数据包进行解析,读取IP数据包中所包含的第二数据标识,并在目标服务器查找第二数据标识所标识的目标数据,将所查找到的目标数据返回至服务器。具体的,目标数据返回的方式可以是以IP数据包的形式进行返回。
[0062]S306,接收所述目标服务器所返回的所述目标数据,并将所述目标数据返回至所述客户端。
[0063]具体实施例中,本端服务器接收到目标服务器所返回的目标数据,目标数据的返回方式可以是以IP数据包的形式进行返回,当接收到目标服务器所返回的IP数据包时,从本端服务器查询客户端的IP地址,再次将IP数据包中的目标IP地址修改为客户端的IP地址,再次以IP数据包的形式发送至客户端。
[0064]进一步的,为了保证本端服务器在出现故障时,客户端与目标服务器之间的信息交互不会中断,可以为本端服务器配置备机,当本端服务器进行工作时,连接转移模块会启动心跳线程,定时将主机的连接状态信息发送至备机,因为数据传输频繁,可以为主备机各安装两块网卡,用其中一块网卡专门传输心跳,当主机出现故障时,应用层或者网络层进行调度,将任务调度至备机,备机变成主机,处理程序变成主机模式,备机从存储区读取TCP/IP连接状态,继续服务,因为备机对于连接状态有保存,所以客户和目标服务器都不会发现主备切换。使用这种主备切换可以保证在本端服务器出现故障时,服务不会中断,提高了用户体验。
[0065]本发明实施例中,根据第一数据请求信息中的数据标识查找存储目标数据的目标服务器,并向目标服务器获取所需要的目标数据,这种调度方法不需要进行复杂的算法确定存储目标数据的目标服务器,简单易行,效率极高。[0066]下面阐述本发明实施例提供的一种服务器的具体实现。
[0067]请参照图4,为本发明实施例提供的一种服务器的结构示意图。如图4所示,本实施例所述的一种服务器包括:第一接收模块100、查找模块101和获取返回模块102。
[0068]第一接收模块100,用于接收客户端发送的第一数据请求信息,所述第一数据请求信息包括第一数据标识,所述第一数据请求信息用于获取所述第一数据标识所标识的目标数据;
[0069]具体实施例中,当客户端需要获取相应的目标数据时,需要向服务器发送第一数据请求信息,服务器第一接收模块100接收客户端所发送的第一数据请求信息,需要说明的是,第一数据请求信息是客户端用于获取目标数据所发送的,第一数据请求信息可以是以数据包的形式存在,服务器和客户端之间的交互信息方式可以是基于TCP数据连接,进一步的,第一数据请求信息中包括需要获取的目标数据的第一数据标识,该第一数据标识用于标识目标数据,在所有的客户端和服务器中,目标数据的第一数据标识是相同的,不同的目标数据的数据标识不同,数据标识是唯一的。,需要说明的是,第一数据请求信息中还可以包括客户端的网络速度,需要请求的数据文件大小。
[0070]确定模块101,用于根据所述第一数据标识确定目标服务器,所述目标服务器存储所述目标数据;
[0071]具体实施例中,本端服务器存储了所有数据标识以及每一个数据标识对应的目标服务器,数据标识与目标服务器的对应关系为,目标服务器存储了数据标识所标识的目标数据,具体的,本端存储所有数据标识以及每一个数据标识对应的目标服务器的方式可以是以数据库的方式进行存储,该数据库可以为任务数据库,在该任务数据库中存储每一个数据标识以及每一个数据标识对应的目标服务器的地址信息或者目标服务器的服务器标识,进一步的,在任务数据库中还存储了当前目标服务器的状态,例如当前目标服务器的剩余带宽或者当前目标服务器的负载等等;确定模块101根据第一数据标识确定目标服务器的方法可以是,首先本端服务器获得了第一数据标识,确定模块101就可以在任务数据库中去查找第一数据标识对应的目标服务器,具体的查找方法可以是在任务数据库中遍历所有的数据标识,当查询到与第一数据标识匹配的数据标识时,就获取该数据标识对应的目标服务器的信息,因为一个数据标识可能对应多个目标服务器,所以查询到多个目标服务器信息,该目标服务器信息包括当前该目标服务器的剩余带宽以及当前负载情况,所以进一步结合各个目标服务器当前的负载情况以及剩余带宽确定最适合的目标服务器,并将该目标服务器确定为与第一数据标识对应的目标服务器。
[0072]获取返回模块102,用于向所述目标服务器获取所述目标数据,并将所述目标数据返回至所述客户端。
[0073]具体实施例中,当获得了目标服务器的服务器标识或者目标服务器的地址信息,获取返回模块102就可以向相应的目标服务器获取需要的目标数据,具体的获取方式可以是,首先与目标服务器建立数据连接,并利用已经建立的数据连接向目标服务器获取目标数据,目标服务器根据第一数据信息中的第一数据标识获取相应的目标数据,并将目标数据返回给服务器,当获取返回模块102服务器接收到目标服务器所返回的目标数据时,则将所接收到的目标数据返回给客户端。
[0074]本发明实施例中,根据第一数据请求信息中的数据标识查找存储目标数据的目标服务器,并向目标服务器获取所需要的目标数据,这种调度方法不需要进行复杂的算法确定存储目标数据的目标服务器,简单易行,效率极高。
[0075]请参照图5,为本发明实施例提供的另一种服务器的结构示意图。如图5所示,本实施例所述的另一种服务器包括:第一接收模块100、查找模块101、获取返回模块102、建立模块103、第二接收模块104、添加模块105、发送模块106、接收返回模块107和启动发送模块108 ;其中,第一接收模块100、查找模块101和获取返回模块102请参照图4的描述,在此不再赘述。
[0076]建立模块103,用于与所述客户端建立TCP数据连接;
[0077]具体实施例中,当客户端需要获取目标数据时,首先建立模块103需要与服务器建立TCP数据连接,需要说明的是,这里的服务器可以是虚拟服务器,该虚拟服务器的功能主要是进行任务调度,确定目标服务器。具体的,服务器与客户端建立TCP数据连接的方式是,建立模块103接收客户端发送的握手信号SYN消息,服务器中的TCP处理模块保存SYN消息中的信息,该信息中可以包括客户端的IP地址,然后建立模块103向客户端回复握手确认信号SYN/ACK消息,当客户端接收到SYN/ACK消息,再次回复连接确认信号ACK消息,TCP处理模块再次将所接收的ACK消息进行保存,至此,客户端与服务器之间的TCP数据连接建立完成。
[0078]第二接收模块104,用于接收客户端所发送的第二数据包,所述第二数据包包括第二数据标识;
[0079]具体实施例中,当客户端需要再次获取数据时,就发送第二数据包,本端服务器第二接收模块104接收客户端所发送的第二数据包,客户端与服务器之间的信息交互可以是基于已经建立的TCP数据连接,也可以是基于重新建立的TCP数据连接,第二数据包可以是IP数据包,在该第二数据包中包括用于标识需要获取的目标数据的第二数据标识,本端服务器第二接收模块104接收到客户端的第二数据包之后,对第二数据包进行解析,获取第二数据标识。
[0080]添加模块105,用于若所述第二数据标识与所述第一数据标识相同,则将与所述第一数据标识对应的地址信息添加至所述第二数据包中,并将所述地址信息作为所述第二数据包的目标地址;
[0081]具体实施例中,若所解析出的第二数据标识与第一数据标识相同,则表明第一数据包和第二数据包需要到达的目标服务器相同,这时就不需要再次在任务数据库中查询第二数据标识对应的地址信息,而是添加模块105直接将已经查询到的第一数据标识对应的地址信息添加到第二数据包中,在转发第二数据包的过程中,减少从任务数据库中查询地址信息的步骤,从而减少了转发时间,提高了效率,并且第二数据包也可以是以IP数据包的形式存在,所以添加模块105直接将IP数据包中的目标IP地址修改为第一数据标识对应的IP地址。
[0082]发送模块106,用于根据所述第二数据包的目标地址将所述第二数据包发送至所述目标服务器,以使所述目标服务器根据所述第二数据标识查找所述第二数据标识所标识的所述目标数据,并返回所查找到的所述目标数据;
[0083]具体实施例中,发送模块106向目标服务器发送第二数据包也可以基于TCP数据连接,这里的TCP数据连接可以是已经建立的TCP数据连接,也可以是重新建立的TCP数据连接,第二数据包可以是IP数据包,所以发送模块106将第二数据包发送至目标服务器的方式可以是利用建立的TCP数据连接,并根据IP数据包中的目标IP地址将IP数据包发送至目标服务器。IP数据包到达目标服务器,目标服务器对所接收的IP数据包进行解析,读取IP数据包中所包含的第二数据标识,并根据第二数据标识查找第二数据标识所标识的目标数据,将所查找到的目标数据返回至服务器。具体的,目标数据返回的方式可以是以IP数据包的形式进行返回。
[0084]接收返回模块107,用于接收所述目标服务器所返回的所述目标数据,并将所述目标数据返回至所述客户端。
[0085]具体实施例中,本端服务器接收返回模块107接收到目标服务器所返回的目标数据,目标数据的返回方式可以是以IP数据包的形式进行返回,当接收到目标服务器所返回的IP数据包时,接收返回模块107从本端服务器查询客户端的IP地址,再次将IP数据包中的目标IP地址修改为客户端的IP地址,再次以IP数据包的形式发送至客户端。
[0086]启动发送模块108,用于启动与备机之间的心跳线程,并利用所述心跳线程按照预设周期将本端的连接状态信息发送至所述备机;以使所述备机根据所述连接状态信息判断本端是否出现故障,若本端出现故障,则所述备机转换为主机模式。
[0087]具体实施例中,为了保证本端服务器在出现故障时,客户端与目标服务器之间的信息交互不会中断,可以为本端服务器配置备机,当本端服务器进行工作时,启动发送模块108会启动心跳线程,按照预设周期将主机的连接状态信息发送至备机,因为数据传输频繁,可以为主备机各安装两块网卡,用其中一块网卡专门传输心跳,当主机出现故障时,连接状态信息可以反映,所以当备机从所接收的连接状态信息中判断出主机出现故障时,则备机应用层或者网络层进行调度,将任务调度至备机,备机变成主机模式,处理程序也变成主机模式,备机从存储区读取TCP/IP连接状态,继续服务,因为备机对于连接状态有保存,所以客户和目标服务器都不会发现主备切换。使用这种主备切换可以保证在本端服务器出现故障时,服务不会中断,提高了用户体验。
[0088]本发明实施例中,根据第一数据请求信息中的数据标识查找存储目标数据的目标服务器,并向目标服务器获取所需要的目标数据,这种调度方法不需要进行复杂的算法确定存储目标数据的目标服务器,简单易行,效率极高。
[0089]请参照图6,是本发明实施例提供的一种查找模块的结构示意图;如图6所示,本实施例所述的一种查找模块101包括解析单元1010和查询单元1011。
[0090]解析单元1010,从所述第一数据请求信息中解析出第一数据标识;
[0091]具体实施例中,解析单元1010从第一数据请求信息中解析出第一数据标识的方法可以是,服务器的应用程序在本端的网络层解析出应用数据,然后利用共享内存将应用数据发送给应用层模块,应用层再从中解析出数据标识以及其他数据
[0092]查询单元1011,在任务数据库中查询与所述第一数据标识对应的地址信息,并将所述地址信息表示的服务器作为所述目标服务器,所述任务数据库中存储至少一个数据标识以及每一个所述数据标识对应的地址信息。
[0093]具体实施例中,任务数据库中存储了所有的数据标识以及与每一个数据标识所对应的目标服务器的地址信息,根据该目标服务器的地址信息可以找到目标服务器,目标服务器存储了数据标识所标识的数据,所以根据数据标识对应的目标服务器的地址可以找到数据标识所标识的数据,具体的,任务数据库中,数据标识与地址信息的对应关系可以是一个数据标识对应一个地址信息,也可以是多个数据标识对应一个地址信息,即是该地址信息表示的服务器存储了多个数据标识所标识的数据。查询单元1011在任务数据库中遍历所有的数据标识,查询到与第一数据标识匹配的数据标识时,则获取该数据标识对应的地址信息,并作为第一数据标识对应的地址信息,该地址信息标识的服务器也即是目标服务器,该目标服务器存储了第一数据标识所标识的目标数据,需要说明的是,该地址信息可以是IP地址彳目息。
[0094]本发明实施例中,根据第一数据请求信息中的数据标识查找存储目标数据的目标服务器,并向目标服务器获取所需要的目标数据,这种调度方法不需要进行复杂的算法确定存储目标数据的目标服务器,简单易行,效率极高。
[0095]请参照图7,是本发明实施例提供的一种获取返回模块的结构示意图;如图7所示,本实施例所述的一种获取返回模块102包括添加单元1020、发送单元1021和接收返回单元1022。
[0096]添加单元1020,用于将查询得到的与所述第一数据标识对应的地址信息添加至所述第一数据包中,并将所述地址信息作为所述第一数据包的目标地址;
[0097]具体实施例中,第一数据请求信息可以是以第一数据包的形式存在,第一数据包可以是IP数据包,地址信息可以是IP地址,这里以IP数据包和IP地址为例进行说明,在该IP数据包中存在该IP数据包的源IP地址,还存在该IP数据包的目标IP地址,从客户端接收到的IP数据包中的目标IP地址是本端服务器的IP地址。将从客户端所接收的IP数据包进行转发之前,需要修改IP数据包中的目标IP地址,所以添加单元1020将从任务数据库中所查询得到的与第一数据标识对应的地址信息添加至IP数据包中,具体的添加方式可以是修改IP数据包中的目标IP地址,将原来的本端服务器IP地址修改为查询到的与第一数据标识对应的IP地址。
[0098]发送单元1021,根据所述第一数据包的目标地址,将所述第一数据包发送至所述目标服务器,以使所述目标服务器根据所述第一数据标识查找所述第一数据标识所标识的目标数据,再由所述目标服务器返回所查找到的所述目标数据;
[0099]具体实施例中,本端服务器与目标服务器的信息交互之前,本端服务器发送单元1021需要与目标服务器建立TCP数据连接,具体的建立方式可以是,根据目标服务器的地址信息,向目标服务器发送握手信号SYN消息,目标服务器中的TCP处理模块保存SYN消息中的信息,然后回复握手确认信号SYN/ACK消息,当本端服务器接收到SYN/ACK消息,再次回复连接确认信号ACK消息,至此,本端服务器与目标服务器之间的TCP数据连接建立完成,然后发送单元1021利用本端服务器与目标服务器之间所建立的TCP数据连接向目标服务器发送修改了目标地址的第一数据包,第一数据包到达目标服务器,目标服务器对所接收的第一数据包进行解析,读取第一数据包中所包含的第一数据标识,并根据第一数据标识查找第一数据标识所标识的目标数据,将所查找到的目标数据返回至服务器。具体的,目标数据返回的方式可以是以IP数据包的形式进行返回。
[0100]接收返回单元1022,接收所述目标服务器所返回的所述目标数据,并将所述目标数据返回至所述客户端。
[0101]具体实施例中,本端服务器接收返回单元1022接收到目标服务器所返回的目标数据,目标数据的返回方式可以是以IP数据包的形式进行返回,接收返回单元1022当接收到目标服务器所返回的IP数据包时,从本端服务器查询客户端的IP地址,再次将IP数据包中的目标IP地址修改为客户端的IP地址,再次以IP数据包的形式发送至客户端。
[0102]本发明实施例中,根据第一数据请求信息中的数据标识查找存储目标数据的目标服务器,并向目标服务器获取所需要的目标数据,这种调度方法不需要进行复杂的算法确定存储目标数据的目标服务器,简单易行,效率极高。
[0103]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory, RAM)等。
[0104]本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
[0105]本发明实施例终端中的模块或单元可以根据实际需要进行合并、划分和删减。
[0106]本发明实施例的微控制器等部件,可以以通用集成电路(如中央处理器CPU),或以专用集成电路(ASIC)来实现。
[0107]以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
【权利要求】
1.一种调度方法,其特征在于,所述方法包括: 接收客户端发送的第一数据请求信息,所述第一数据请求信息包括第一数据标识,所述第一数据请求信息用于获取所述第一数据标识所标识的目标数据; 根据所述第一数据标识确定目标服务器,所述目标服务器存储所述目标数据; 向所述目标服务器获取所述目标数据,并将所述目标数据返回至所述客户端。
2.如权利要求1所述的方法,其特征在于,所述根据所述第一数据标识确定目标服务器,包括: 从所述第一数据请求信息中解析出第一数据标识; 在任务数据库中查询与所述第一数据标识对应的地址信息,并将所述地址信息表示的服务器作为所述目标服务器,所述任务数据库中存储至少一个数据标识以及每一个所述数据标识对应的地址信息。
3.如权利要求2所述的方法,其特征在于,所述第一数据请求信息以第一数据包的形式存在,所述向所述目标服务器获取所述目标数据,并将所述目标数据返回至所述客户端,包括: 将查询得到的与所述第一数据标识对应的地址信息添加至所述第一数据包中,并将所述地址信息作为所述第一数据包的目标地址; 根据所述第一数据包的目标地址,将所述第一数据包发送至所述目标服务器,以使所述目标服务器根据所述第一数据标识查找所述第一数据标识所标识的目标数据,再由所述目标服务器返回所查找到的所述目标数据; 接收所述目标服务器所返回的所述目标数据,并将所述目标数据返回至所述客户端。
4.如权利要求3所述的方法,其特征在于,所述接收所述目标服务器所返回的目标数据,并将所述目标数据返回至所述客户端之后,还包括: 接收客户端发送的第二数据包,所述第二数据包包括第二数据标识; 若所述第二数据标识与所述第一数据标识相同,则将与所述第一数据标识对应的地址信息添加至所述第二数据包中,并将所述地址信息作为所述第二数据包的目标地址; 根据所述第二数据包的目标地址将所述第二数据包发送至所述目标服务器,以使所述目标服务器根据所述第二数据标识查找所述第二数据标识所标识的所述目标数据,并返回所查找到的所述目标数据; 接收所述目标服务器所返回的所述目标数据,并将所述目标数据返回至所述客户端。
5.如权利要求1至4任一项所述的方法,其特征在于,所述接收客户端发送的第一数据请求信息之前,还包括: 与所述客户端建立TCP数据连接; 所述接收客户端发送的第一数据请求信息包括: 利用与所述客户端所建立的TCP数据连接接收客户端发送的第一数据请求信息。
6.如权利要求1所述的方法,其特征在于,所述方法还包括: 启动与备机之间的心跳线程,并利用所述心跳线程按照预设周期将本端的连接状态信息发送至所述备机;以使所述备机根据所述连接状态信息判断本端是否出现故障,若本端出现故障,则所述备机转换为主机模式。
7.一种服务器,其特征在于,所述服务器包括:第一接收模块,用于接收客户端发送的第一数据请求信息,所述第一数据请求信息包括第一数据标识,所述第一数据请求信息用于获取所述第一数据标识所标识的目标数据; 确定模块,用于根据所述第一数据标识查找目标服务器,所述目标服务器存储所述目标数据; 获取返回模块,用于向所述目标服务器获取所述目标数据,并将所述目标数据返回至所述客户端。
8.如权利要求7所述的服务器,其特征在于,所述查找模块包括: 解析单元,用于从所述第一数据请求信息中解析出第一数据标识; 查询单元,用于在任务数据库中查询与所述第一数据标识对应的地址信息,并将所述地址信息表示的服务器作为所述目标服务器,所述任务数据库中存储至少一个数据标识以及每一个所述数据标识对应的地址信息。
9.如权利要求8所述的服务器,其特征在于,所述第一数据请求信息以第一数据包的形式存在,所述获取返回模块包括: 添加单元,用于将查询得到的与所述第一数据标识对应的地址信息添加至所述第一数据包中,并将所述地址信息作为所述第一数据包的目标地址; 发送单元,用于根据所述第一数据包的目标地址,将所述第一数据包发送至所述目标服务器,以使所述目标服务器根据所述第一数据标识查找所述第一数据标识所标识的目标数据,再由所述目标服 务器返回所查找到的所述目标数据; 接收返回单元,用于接收所述目标服务器所返回的所述目标数据,并将所述目标数据返回至所述客户端。
10.如权利要求9所述的服务器,其特征在于,所述服务器还包括: 第二接收模块,用于接收客户端所发送的第二数据包,所述第二数据包包括第二数据标识; 添加模块,用于若所述第二数据标识与所述第一数据标识相同,则将与所述第一数据标识对应的地址信息添加至所述第二数据包中,并将所述地址信息作为所述第二数据包的目标地址; 发送模块,用于根据所述第二数据包的目标地址将所述第二数据包发送至所述目标服务器,以使所述目标服务器根据所述第二数据标识查找所述第二数据标识所标识的所述目标数据,并返回所查找到的所述目标数据; 接收返回模块,用于接收所述目标服务器所返回的所述目标数据,并将所述目标数据返回至所述客户端。
11.如权利要求7至10任一项所述服务器,其特征在于,所述服务器还包括: 建立模块,用于与所述客户端建立TCP数据连接; 所述第一接收模块具体用于利用与所述客户端所建立的TCP数据连接接收客户端发送的第一数据请求信息。
12.如权利要求7所述的服务器,其特征在于,所述服务器还包括: 启动发送模块,用于启动与备机之间的心跳线程,并利用所述心跳线程按照预设周期将本端的连接状态信息发送至所述备机;以使所述备机根据所述连接状态信息判断本端是否出现故障,若本端出现故障,则所述备机转换为主机模式。
【文档编号】H04L29/06GK103905526SQ201410077696
【公开日】2014年7月2日 申请日期:2014年3月5日 优先权日:2014年3月5日
【发明者】夏浪 申请人:深圳市同洲电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1