一种传输业务数据的方法、装置及电子设备与流程

文档序号:15197655发布日期:2018-08-19 01:15阅读:156来源:国知局

本发明涉及计算机领域,特别涉及一种传输业务数据的方法、装置及电子设备。



背景技术:

在网络通信中,客户端与服务器通常需要建立连接后才可以进行通信。由于客户端的数量巨大,单个服务节点通常无法满足全部客户端的服务请求,因而需要提供多个服务节点为用户提供服务。各服务节点通常包含多台服务器,技术人员可以给每个服务节点预设一个公网ip(internetprotocol,互联网协议)地址,给每个服务节点中的各台服务器分别预设一个内网ip地址。

为了均衡各服务器的负载,通常需要使用负载均衡器,负载均衡器可以根据预设的调度规则,选取满足该调度规则的服务器,以使服务器与发送连接请求的客户端建立数据连接。然后,客户端向负载均衡器发送业务数据请求消息,负载均衡器将业务数据请求消息转发给服务器;服务器根据业务请求消息将相应的业务数据发送给负载均衡器,负载均衡器将接收到的业务数据转发给客户端。

然而,负载均衡器转发业务数据的总效率是有上限的,这样就限制服务器与客户端之间业务数据传输的效率。并且,当负载均衡器出现故障时,客户端与服务器之间的数据连接会中断,服务器不能继续向客户端发送业务数据。



技术实现要素:

本发明实施例的目的在于提供一种传输业务数据的方法、装置及电子设备,以实现同一内网环境中的客户端直接与服务器建立数据连接,在建立数据连接后,服务器与客户端之间传输业务数据时,不需要通过负载均衡器中转,从而提高了通信的可靠性和效率。具体技术方案如下:

第一方面,提供了一种传输业务数据的方法,所述方法包括:

向负载均衡器发送第一请求消息;

当接收到所述负载均衡器发送的第一应答消息时,向所述负载均衡器发送第二请求消息,以使所述负载均衡器根据预设的调度规则,确定符合所述调度规则的目标服务器;

接收所述负载均衡器发送的数据,所述数据中包含所述目标服务器的内网地址;

根据所述内网地址,与所述目标服务器进行业务数据传输。

可选的,所述根据所述内网地址,与所述目标服务器进行业务数据传输,包括:

根据所述内网地址,向所述目标服务器发送第三请求消息;

当接收所述目标服务器发送的第三应答消息时,与所述目标服务器建立数据连接;

通过所述数据连接与所述目标服务器进行业务数据传输。

可选的,所述与所述目标服务器进行业务数据传输,包括:

向所述目标服务器发送业务请求消息,所述业务请求消息中包含业务数据的标识;

接收所述目标服务器发送的所述业务数据的标识对应的业务数据。

可选的,所述目标服务器的内网地址为所述目标服务器的内网互联网协议ip地址。

第二方面,提供了另一种传输业务数据的方法,所述方法包括:

接收客户端发送的第一请求消息;

向所述客户端发送第一应答消息;

接收所述客户端发送的第二请求消息,所述第二请求消息用于请求服务器的内网地址;

根据预设的调度规则,确定符合所述调度规则的目标服务器;

获取所述目标服务器的内网地址;

向所述客户端发送包含所述内网地址的数据,以使所述客户端与所述目标服务器进行业务数据传输。

第三方面,提供了一种传输业务数据的装置,所述装置包括:

第一发送模块,用于向负载均衡器发送第一请求消息;

第二发送模块,用于当接收到所述负载均衡器发送的第一应答消息时,向所述负载均衡器发送第二请求消息,以使所述负载均衡器根据预设的调度规则,确定符合所述调度规则的目标服务器;

接收模块,用于接收所述负载均衡器发送的数据,所述数据中包含所述目标服务器的内网地址;

传输模块,用于根据所述内网地址,与所述目标服务器进行业务数据传输。

可选的,所述传输模块,包括:

第三发送模块,用于根据所述内网地址,向所述目标服务器发送第三请求消息;

第一接收模块,用于当接收所述目标服务器发送的第三应答消息时,与所述目标服务器建立数据连接;

第一传输模块,用于通过所述数据连接与所述目标服务器进行业务数据传输。

可选的,所述传输模块,包括:

第四发送模块,用于向所述目标服务器发送业务请求消息,所述业务请求消息中包含业务数据的标识;

第二接收模块,用于接收所述目标服务器发送的所述业务数据的标识对应的业务数据。

可选的,所述目标服务器的内网地址为所述目标服务器的内网互联网协议ip地址。

第四方面,提供了一种传输业务数据的装置,所述装置包括:

第三接收模块,用于接收客户端发送的第一请求消息;

第五发送模块,用于向所述客户端发送第一应答消息;

第四接收模块,用于接收所述客户端发送的第二请求消息,所述第二请求消息用于请求服务器的内网地址;

确定模块,用于根据预设的调度规则,确定符合所述调度规则的目标服务器;

获取模块,用于获取所述目标服务器的内网地址;

第六发送模块,用于向所述客户端发送包含所述内网地址的数据,以使所述客户端与所述目标服务器进行业务数据传输。

第五方面,提供了一种电子设备,所述电子设备包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;

所述存储器,用于存放计算机程序;

所述处理器,用于执行所述存储器上所存放的程序时,实现上述传输业务数据的方法步骤。

第六方面,为了达到上述目的,本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现如上述传输业务数据的方法步骤。

本发明实施例提供的传输业务数据的方法、装置及电子设备,通过向负载均衡器发送第一请求消息,当接收到负载均衡器发送的第一应答消息时,向负载均衡器发送第二请求消息,以使负载均衡器根据预设的调度规则,确定符合调度规则的目标服务器,然后接收负载均衡器发送的数据,数据中包含目标服务器的内网地址,再根据内网地址,与目标服务器进行业务数据传输。采用本发明提供的传输业务数据的方法,同一内网环境中的客户端可以根据负载均衡器发送的服务器内网地址,直接与服务器建立数据连接,在建立数据连接后,服务器与客户端之间传输业务数据时,不需要通过负载均衡器中转,从而提高了通信的可靠性和效率。当然,实施本发明的任一产品或方法不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例提供的一种现有技术传输业务数据的系统框架图;

图2为本发明实施例提供的一种传输业务数据的系统框架图;

图3为本发明实施例提供的一种传输业务数据的方法流程图;

图4为本发明实施例提供的一种客户端、负载均衡器和目标服务器之间的信号传输示意图;

图5为本发明实施例提供的一种传输业务数据的装置结构示意图;

图6为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

本发明实施例公开了一种传输业务数据的方法、装置及电子设备,以下分别进行详细说明。

如图1所示,图1为本发明实施例提供的现有技术中客户端、负载均衡器和服务器的系统框架图,其中,每个服务节点通常包含多台服务器。现有技术中,在建立数据连接时,客户端向负载均衡器发送第一请求消息,负载均衡器根据预设的调度规则(例如,最少连接调度规则或轮询调度等规则),选取符合该调度规则的服务器,然后将服务器与客户端建立数据连接;在进行业务数据传输时,客户端向负载均衡器发送业务数据请求消息,负载均衡器将业务数据请求消息转发给服务器,然后服务器根据业务请求消息将对应的业务数据发送给负载均衡器,最后负载均衡器将业务数据转发给客户端。

如图2所示,图2为本发明实施例提供的一种客户端、负载均衡器和服务器的系统框架图,本发明实施例中的客户端、负载均衡器和服务器处于同一个内网环境中。在建立连接时,客户端向负载均衡器发送第一请求消息,负载均衡器根据预设的调度规则(例如,最少连接调度规则和轮询调度等算法),选取符合该调度规则的服务器,然后将服务器的内网地址(例如,内网ip地址)发送给客户端,客户端根据该内网地址,与对应的服务器建立连接;在进行业务数据传输时,客户端直接向服务器发送业务请求消息,服务器将相应的业务数据直接发送给客户端,业务数据不再需要负载均衡器转发。

如图3所示,为本发明实施例提供的一种负载均衡器的连接方法流程图,包括如下步骤:

步骤301,客户端向负载均衡器发送第一请求消息。

在实施中,当客户端接收到获取业务数据的指令时,客户端可以向负载均衡器发送第一请求消息。第一请求消息中包含客户端的地址信息和负载均衡器的地址信息,例如,第一请求消息中,源地址是客户端的ip地址,目的地址是负载均衡器的ip地址。客户端可以通过发送第一请求消息,与负载均衡器建立数据连接。

步骤302,负载均衡器接收客户端发送的第一请求消息。

在实施中,负载均衡器可以实时检测客户端发送的消息,当客户端发送第一请求消息后,负载均衡器可以接收第一请求消息,然后解析第一请求消息,获取第一请求消息对应的请求信息和客户端ip地址。

步骤303,负载均衡器向客户端发送第一应答消息。

在实施中,负载均衡器接收到第一请求消息后,可以向客户端发送第一应答消息,以使客户端与负载均衡器建立数据连接。

步骤304,客户端接收负载均衡器发送的第一应答消息,然后向负载均衡器发送第二请求消息,以使负载均衡器根据预设的调度规则,确定符合调度规则的目标服务器。

在实施中,客户端接收到第一应答消息之后,向负载均衡器发送第二请求消息,第二请求消息用于请求负载均衡器发送目标服务器的内网地址。负载均衡器接收到第二请求消息之后,然后执行步骤305。

步骤305,负载均衡器根据预设的调度规则,确定符合调度规则的目标服务器。

在实施中,负载均衡器中可以预先存储调度规则,例如最少连接调度规则和轮询调度等规则。负载均衡器可以根据预先存储调度规则,确定符合该调度规则的服务器(可以称为目标服务器)。在服务节点中,目标服务器的数据连接个数通常比其它服务器的数据连接个数少,或者,目标服务器发送的业务数据流量比其它的服务器的少。例如,服务节点中包含3台服务器,有2台服务器的数据连接的数目都是9000个,另一台服务器的数据连接的数目是8999个,负载均衡器可以根据预设的最少连接调度规则,确定数据连接数目是8999个的服务器为目标服务器。

步骤306,负载均衡器获取目标服务器的内网地址。

在实施中,负载均衡器在确定目标服务器之后,可以获取预设的目标服务器的内网地址和端口号。其中,各服务器的内网地址在网络中是唯一的,服务节点中的各服务器可以通过各自的内网地址进行区分。

步骤307,负载均衡器向客户端发送包含内网地址的数据,以使客户端与目标服务器进行业务数据传输。

在实施中,负载均衡器可以将目标服务器的内网地址和端口号发送给客户端,以使客户端执行步骤308。

步骤308,客户端根据内网地址,与目标服务器进行业务数据传输。

在实施中,客户端可以根据负载均衡器发送的内网地址,与内网地址对应的目标服务器建立数据连接,然后与目标服务器进行业务数据传输。

可选的,客户端根据内网地址,向目标服务器发送第三请求消息,然后接收目标服务器发送的第三应答消息,与目标服务器建立数据连接,最后通过数据连接与目标服务器进行业务数据传输。

在实施中,客户端可以根据目标服务器的内网地址,向目标服务器发送第三请求消息,第三请求消息中,源地址可以是客户端的ip地址,目的地址可以是客户端的ip地址,客户端可以通过发送第三请求消息以使目标服务器与客户端建立数据连接。当目标服务器接收到第三请求消息后,可以向客户端发送第三应答消息,第三应答消息中,源地址可以是目标服务器的ip地址,目的地址可以是客户端的ip地址,客户端可以接收第三应答消息。客户端在接收到第三应答消息后,还可以向目标服务器发送第三确认消息,第三确认消息中,源地址可以是客户端的ip地址,目的地址可以是目标服务器的ip地址,以使目标服务器与客户端建立数据连接。在数据连接建立后,客户端与目标服务器可以通过数据连接进行业务数据传输。

本发明实施例提供的方案中,客户端与服务器在进行业务数据传输之前,先建立数据连接,这样可以避免业务数据在传输中丢失。

可选的,客户端向目标服务器发送业务请求消息,业务请求消息中包含业务数据的标识,然后接收目标服务器发送的业务数据的标识对应的业务数据。

在实施中,客户端可以向目标服务器发送业务请求消息,业务请求消息中包含预设的业务数据的标识。目标服务器接收到业务请求消息之后,根据业务数据的标识获取该标识对应的业务数据,然后将业务数据发送客户端。例如,目标服务器中预先存储有多部电影的视频数据,各视频数据具有各自的标识,目标服务器可以根据业务请求消息中的标识,获取对应的视频数据发送给客户端。

本发明实施例提供的方案中,客户端与目标服务器直接进行业务数据传输,不需要负载均衡器转发业务数据,这样业务数据的总流量不受负载均衡器的限制,从而提高了业务数据的传输效率,并且在客户端与目标服务器建立数据连接后,负载均衡器出现故障时,业务数据可以继续传输。

可选的,目标服务器的内网地址是目标服务器的内网ip地址。

在实施中,目标服务器的内网地址可以是目标服务器的内网ip地址,因为在进行业务数据传输时,通常使用tcp/ip(transmissioncontrolprotocol/internetprotocol,传输控制协议/互联网协议)协议。在使用tcp/ip协议时,各服务器预设有内网ip地址,这样可以使客户端和负载均衡器通过内网ip地址识别各服务器。

当业务数据采用tcp/ip协议传输时,客户端、负载均衡器和目标服务器之间的信号传输示意图如图4所示。客户端向负载均衡器发送syn(synchronous,同步的)信号,负载均衡器接收到syn信号后,向客户端发送syn-ack(synchronous-acknowledgement,同步的-确认)信号,然后客户端向负载均衡器发送ack信号,此时,客户端与负载均衡器建立了数据连接。然后客户端向负载均衡器发送psh-ack(push-acknowledgement,传送-确认)信号,用于请求服务器的内网ip地址,负载均衡器向客户端发送ack信号后,向客户端发送psh-ackdata:rs(push-acknowledgementdata-realserver,传送-确认数据-真实服务器)信号,psh-ackdata:rs信号中可以包含目标服务器的内网ip地址和端口号。客户端接收到psh-ackdata:rs信号后,向负载均衡器发送fin-ack(finish-acknowledgement,结束-确认)信号,与负载均衡器断开数据连接,腾出占用负载均衡器的资源;与此同时,客户端向目标服务器发送syn信号,用于请求与目标服务器建立数据连接,目标服务器接收到syn信号后,向客户端发送syn-ack信号,客户端接收到syn-ack信号后,向目标服务器发送ack信号,此时客户端与目标服务器建立数据连接。然后客户端与目标服务器进行业务数据传输。当业务数据传输结束时,客户端与目标服务器通过发送fin-ack信号和ack信号,断开数据连接。

本发明实施例提供的传输业务数据的方法,通过向负载均衡器发送第一请求消息,当接收到负载均衡器发送的第一应答消息时,向负载均衡器发送第二请求消息,以使所述负载均衡器根据预设的调度规则,确定符合调度规则的目标服务器,然后接收负载均衡器发送的数据,数据中包含目标服务器的内网地址,再根据内网地址,与目标服务器进行业务数据传输。采用本发明提供的传输业务数据的方法,同一内网环境中的客户端可以根据负载均衡器发送的服务器内网地址,直接与服务器建立数据连接,在建立数据连接后,服务器与客户端之间传输业务数据时,不需要通过负载均衡器中转,从而提高了通信的可靠性和效率。

基于相同的技术构思,相应于图1所示方法实施例,本发明实施例还提供了一种传输业务数据的装置,如图5所示,该装置包括:

第一发送模块501,用于向负载均衡器发送第一请求消息;

第二发送模块502,用于当接收到所述负载均衡器发送的第一应答消息时,向所述负载均衡器发送第二请求消息,以使所述负载均衡器根据预设的调度规则,确定符合所述调度规则的目标服务器;

接收模块503,用于接收所述负载均衡器发送的数据,所述数据中包含所述目标服务器的内网地址;

传输模块504,用于根据所述内网地址,与所述目标服务器进行业务数据传输。

可选的,所述传输模块,包括:

第三发送模块,用于根据所述内网地址,向所述目标服务器发送第三请求消息;

第一接收模块,用于当接收所述目标服务器发送的第三应答消息时,与所述目标服务器建立数据连接;

第一传输模块,用于通过所述数据连接与所述目标服务器进行业务数据传输。

可选的,所述传输模块,包括:

第四发送模块,用于向所述目标服务器发送业务请求消息,所述业务请求消息中包含业务数据的标识;

第二接收模块,用于接收所述目标服务器发送的所述业务数据的标识对应的业务数据。

可选的,所述目标服务器的内网地址为所述目标服务器的内网互联网协议ip地址。

本发明实施例还提供了另一种传输业务数据的装置,所述装置包括:

第三接收模块,用于接收客户端发送的第一请求消息;

第五发送模块,用于向所述客户端发送第一应答消息;

第四接收模块,用于接收所述客户端发送的第二请求消息,所述第二请求消息用于请求服务器的内网地址;

确定模块,用于根据预设的调度规则,确定符合所述调度规则的目标服务器;

获取模块,用于获取所述目标服务器的内网地址;

第六发送模块,用于向所述客户端发送包含所述内网地址的数据,以使所述客户端与所述目标服务器进行业务数据传输。

本发明实施例提供的传输业务数据的装置,通过向负载均衡器发送第一请求消息,当接收到负载均衡器发送的第一应答消息时,向负载均衡器发送第二请求消息,以使所述负载均衡器根据预设的调度规则,确定符合调度规则的目标服务器,然后接收负载均衡器发送的数据,数据中包含目标服务器的内网地址,再根据内网地址,与目标服务器进行业务数据传输。采用本发明提供的传输业务数据的方法,同一内网环境中的客户端可以根据负载均衡器发送的服务器内网地址,直接与服务器建立数据连接,在建立数据连接后,服务器与客户端之间传输业务数据时,不需要通过负载均衡器中转,从而提高了通信的可靠性和效率。

本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,

存储器603,用于存放计算机程序;

处理器601,用于执行存储器603上所存放的程序时,实现本发明实施例提供的传输业务数据的方法。

具体的,上述传输业务数据的方法,包括:

向负载均衡器发送第一请求消息;

当接收到所述负载均衡器发送的第一应答消息时,向所述负载均衡器发送第二请求消息,以使所述负载均衡器根据预设的调度规则,确定符合所述调度规则的目标服务器;

接收所述负载均衡器发送的数据,所述数据中包含所述目标服务器的内网地址;

根据所述内网地址,与所述目标服务器进行业务数据传输。

需要说明的是,上述传输业务数据的方法的其他实现方式与前述方法实施例部分相同,这里不再赘述。

上述电子设备的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的传输业务数据的方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的传输业务数据的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

本发明实施例提供的传输业务数据的方法、装置及电子设备,通过向负载均衡器发送第一请求消息,当接收到负载均衡器发送的第一应答消息时,向负载均衡器发送第二请求消息,以使所述负载均衡器根据预设的调度规则,确定符合调度规则的目标服务器,然后接收负载均衡器发送的数据,数据中包含目标服务器的内网地址,再根据内网地址,与目标服务器进行业务数据传输。采用本发明提供的传输业务数据的方法,同一内网环境中的客户端可以根据负载均衡器发送的服务器内网地址,直接与服务器建立数据连接,在建立数据连接后,服务器与客户端之间传输业务数据时,不需要通过负载均衡器中转,从而提高了通信的可靠性和效率。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

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