CN105323183B - 网络服务器之间的数据传输处理方法与系统 - Google Patents
网络服务器之间的数据传输处理方法与系统 Download PDFInfo
- Publication number
- CN105323183B CN105323183B CN201410376720.8A CN201410376720A CN105323183B CN 105323183 B CN105323183 B CN 105323183B CN 201410376720 A CN201410376720 A CN 201410376720A CN 105323183 B CN105323183 B CN 105323183B
- Authority
- CN
- China
- Prior art keywords
- data packet
- communication channel
- current data
- business
- server
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例公开了一种网络服务器之间的数据传输处理方法与系统,其中,方法包括:请求端服务器计算当前数据包的大小;基于预先设置的协议确定策略和当前数据包的大小属性确定当前数据包传输采用的通信协议;以及基于预先设置的交互模型确定策略,根据当前数据包的大小属性确定当前数据包的通信通道,在当前数据包为小数据包时,选取长连接的通信通道作为当前数据包的通信通道,在当前数据包为大数据包时,选取长连接的通信通道以外的另外一个通信通道作为当前数据包的通信通道;根据确定的通信协议对当前数据包进行编码,得到编码数据流,并通过确定的通信通道向业务端服务器传输编码数据流。本发明实施例可以提高业务处理效率和数据吞吐量。
Description
技术领域
本发明涉及通信技术,尤其是一种网络服务器之间的数据传输处理方法与系统。
背景技术
在各种通信业务中,通常需要在网络侧的不同服务器之间进行数据交互。现有技术中,通常采用如下方式在两个服务器之间进行数据传输:
数据传输的请求端根据事先与服务端的约定,创建与服务端的网络连接,并将待传输数据包放入通信队列;
请求端系统通信进程从通信队列中获取传输数据,通过网络传输,传递至服务端;
服务端系统通讯进程通知业务监听线程响应通信请求;
服务端业务监听线程接收网络连接请求,并由业务处理线程接收通讯通道中传递过来的数据,进行相应的业务处理。
在实现本发明的过程中,发明人发现现有技术的上述数据传输方式至少存在以下问题:
现有技术中两个服务器之间通过长连接还是短连接进行数据交互的交互模型事先已经定死,且一次基于网络交互的数据接收和业务处理都是在单一线程中进行处理,这就使得不同业务场景下大数据包和小数据包都被以相同的交互模式进行传输处理,会导致网络数据拥塞,在业务请求交互次数和交互内容突然上升的时候,导致通信队列中数据包堆积大量增加,来不及处理,降低了网络数据吞吐量和业务处理效率;服务端无法对请求端的业务请求进行及时响应,可能导致请求端频繁进行网络连接创建,对服务器造成无谓的性能损耗。
发明内容
本发明实施例所要解决的一个技术问题是:提供一种网络服务器之间的数据传输处理方法与系统,以提升网络交互中的数据传输效率,提高业务处理效率和数据吞吐量。
本发明实施例提供的一种网络服务器之间的数据传输处理方法,所述网络服务器包括请求端服务器和业务端服务器,所述方法包括:
请求端服务器依次从通信队列选取一个待传输数据包作为当前数据包,并计算当前数据包的大小;
请求端服务器根据预先设置的大小标准判断所述当前数据包的大小属性,其中,数据包的大小属性包括大数据包或小数据包;
请求端服务器基于预先设置的协议确定策略和当前数据包的大小属性,确定当前数据包传输采用的通信协议;以及基于预先设置的交互模型确定策略,根据当前数据包的大小属性确定当前数据包的通信通道,在当前数据包为小数据包时,选取长连接的通信通道作为当前数据包的通信通道,在当前数据包为大数据包时,选取所述长连接的通信通道以外的另外一个通信通道作为当前数据包的通信通道;
请求端服务器根据确定的通信协议对当前数据包进行编码,得到编码数据流,并通过确定的通信通道向业务端服务器传输所述编码数据流;
业务端服务器接收所述通信通道中的编码数据流并进行解码和数据读取,以及根据读取到的数据进行相应的业务处理。
基于本发明上述方法的另一个实施例中,所述通信通道包括双向通道模式或单向通道模式。
基于本发明上述方法的另一个实施例中,所述另外一个通信通道为长连接的通信通道;
在通过确定的通信通道向业务端服务器传输所述编码数据流之前,还包括:请求端服务器判断与业务端服务器之间是否建立了所述确定的通信通道,若尚未建立所述确定的通信通道,则先与业务端服务器之间建立所述确定的通信通道。
基于本发明上述方法的另一个实施例中,所述另外一个通信通道为短连接的通信通道;
若当前数据包为小数据包,在通过确定的通信通道向业务端服务器传输所述编码数据流之前,还包括:请求端服务器判断与业务端服务器之间是否建立了长连接的通信通道,若尚未建立长连接的通信通道,则先与业务端服务器之间建立长连接的通信通道;
若当前数据包为大数据包,在通过确定的通信通道向业务端服务器传输所述编码数据流之前,还包括:请求端服务器与业务端服务器之间建立短连接的通信通道,以及在所述编码数据流传输完毕后,拆除所述短连接的通信通道。
基于本发明上述方法的另一个实施例中,所述基于预先设置的协议确定策略和当前数据包的大小属性,确定当前数据包传输采用的通信协议包括:
基于预先设置的协议确定策略,根据当前数据包的大小和当前数据包内包含的对象类型,为当前数据包选择传输控制协议TCP四层以下的通信协议。
基于本发明上述方法的另一个实施例中,所述根据当前数据包的大小和当前数据包内包含的对象类型,为当前数据包选择TCP四层以下的通信协议包括:
若当前数据包为大数据包且包含序列化的私有对象,为当前数据包选择附加应用属性的协议作为TCP四层以下的通信协议。
基于本发明上述方法的另一个实施例中,所述通过确定的通信通道向业务端服务器传输所述编码数据流包括:
请求端服务器为所述编码数据流分配线程资源,通过确定的通信通道向业务端服务器传输所述编码数据流,并按照预设时长进行超时监控,若超过预设时长未成功发送所述编码数据流或者未接收到相应的响应消息,释放所述线程资源中的业务处理线程资源。
基于本发明上述方法的另一个实施例中,业务端服务器接收所述通信通道中的编码数据流并进行解码和数据读取,以及根据读取到的数据进行相应的业务处理包括:
业务端服务器通过请求受理线程接收所述通信通道中的编码数据流,并转发给业务端服务器的数据读写和协议编码解析线程;
数据读写和协议编码解析线程对接收到的编码数据流进行协议解析、解码和数据读取,并将读取到的数据转发给业务端服务器的业务处理线程;
业务处理线程根据接收到的数据进行相应的业务处理。
基于本发明上述方法的另一个实施例中,还包括:
请求端服务器统计每次业务交互的数据量、输入输出IO参数和业务处理时长,调整所述协议确定策略和交互模型确定策略。
本发明实施例提供的一种网络服务器之间的数据传输处理系统,包括请求端服务器和业务端服务器;其中:
所述请求端服务器,用于依次从通信队列选取一个待传输数据包作为当前数据包,并计算当前数据包的大小;根据预先设置大小标准判断所述当前数据包的大小属性,其中,数据包的大小属性包括大数据包或小数据包;基于预先设置的协议确定策略和当前数据包的大小属性,确定当前数据包传输采用的通信协议;以及基于预先设置的交互模型确定策略,根据当前数据包的大小属性确定当前数据包的通信通道,在当前数据包为小数据包时,选取长连接的通信通道作为当前数据包的通信通道,在当前数据包为大数据包时,选取所述长连接的通信通道以外的另外一个通信通道作为当前数据包的通信通道;以及根据确定的通信协议对当前数据包进行编码,得到编码数据流,并通过确定的通信通道向业务端服务器传输所述编码数据流;
所述业务端服务器,用于接收所述通信通道中的编码数据流并进行解码和数据读取,以及根据读取到的数据进行相应的业务处理。
基于本发明上述系统的另一个实施例中,所述通信通道包括双向通道模式或单向通道模式。
基于本发明上述系统的另一个实施例中,所述请求端服务器包括:
业务请求单元,用于根据需要发送的业务请求将待传输数据包放入通信队列;
计算单元,用于依次从通信队列选取一个待传输数据包作为当前数据包,计算当前数据包的大小,并根据预先设置大小标准判断所述当前数据包的大小属性,其中,数据包的大小属性包括大数据包或小数据包;
协议确定单元,用于基于预先设置的协议确定策略和计算单元确定的当前数据包的大小属性,确定当前数据包传输采用的通信协议;
通道确定单元,用于基于预先设置的交互模型确定策略,根据计算单元确定的当前数据包的大小属性确定当前数据包的通信通道,在当前数据包为小数据包时,选取长连接的通信通道作为当前数据包的通信通道,在当前数据包为大数据包时,选取所述长连接的通信通道以外的另外一个通信通道作为当前数据包的通信通道;
发送处理单元,用于根据协议确定单元确定的通信协议对当前数据包进行编码,得到编码数据流,并通过通道确定单元确定的通信通道向业务端服务器传输所述编码数据流。
基于本发明上述系统的另一个实施例中,所述另外一个通信通道为长连接的通信通道;
所述发送处理单元,还用于在通过确定的通信通道向业务端服务器传输所述编码数据流之前,判断与业务端服务器之间是否建立了所述确定的通信通道,若尚未建立所述确定的通信通道,则先与业务端服务器之间建立所述确定的通信通道,然后再通过确定的通信通道向业务端服务器传输所述编码数据流。
基于本发明上述系统的另一个实施例中,所述另外一个通信通道为短连接的通信通道;
若当前数据包为小数据包,所述发送处理单元,还用于在通过确定的通信通道向业务端服务器传输所述编码数据流之前,判断与业务端服务器之间是否建立了长连接的通信通道,若尚未建立长连接的通信通道,则先与业务端服务器之间建立长连接的通信通道,然后再通过确定的通信通道向业务端服务器传输所述编码数据流;
若当前数据包为大数据包,所述发送处理单元,还用于在通过确定的通信通道向业务端服务器传输所述编码数据流之前,先与业务端服务器之间建立短连接的通信通道,再通过确定的通信通道向业务端服务器传输所述编码数据流;以及在所述编码数据流传输完毕后,拆除所述短连接的通信通道。
基于本发明上述系统的另一个实施例中,所述协议确定单元,具体用于基于预先设置的协议确定策略,根据当前数据包的大小和当前数据包内包含的对象类型,为当前数据包选择传输控制协议TCP四层以下的通信协议。
基于本发明上述系统的另一个实施例中,所述协议确定单元,具体在当前数据包为大数据包且包含序列化的私有对象时,为当前数据包选择附加应用属性的协议作为TCP四层以下的通信协议。
基于本发明上述系统的另一个实施例中,所述发送处理单元通过确定的通信通道向业务端服务器传输所述编码数据流时,具体为所述编码数据流分配线程资源,通过确定的通信通道向业务端服务器传输所述编码数据流,并按照预设时长进行超时监控,若超过预设时长未成功发送所述编码数据流或者未接收到相应的响应消息,释放所述线程资源中的业务处理线程资源。
基于本发明上述系统的另一个实施例中,所述业务端服务器包括接收处理单元和业务处理单元,其中,接收处理单元包括请求受理线程和数据读写和协议编码解析线程,业务处理单元包括业务处理线程;
所述请求受理线程,用于接收所述通信通道中的编码数据流,并转发给数据读写和协议编码解析线程;
所述数据读写和协议编码解析线程,用于对接收到的编码数据流进行协议解析、解码和数据读取,并将读取到的数据转发给业务处理线程;
所述业务处理线程,用于根据接收到的数据进行相应的业务处理。
基于本发明上述实施例提供的网络服务器之间的数据传输处理方法与系统,将大数据包通过新的通信通道(即:交互通道)和小数据包进行分流,使大数据包和小数据包的交互互不影响,每一个大数据包的交互都不会阻碍其他业务请求的小数据包交互,这样网络服务器之间的每一次的数据交互都可以流畅进行,避免大数据包导致的数据拥塞,将延迟和超时降到最低,从而提升了网络交互中的数据传输效率和响应效率,提高了业务处理效率和数据吞吐量。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:
图1为本发明网络服务器之间的数据传输处理方法一个实施例的流程图。
图2为本发明网络服务器之间的数据传输处理方法另一个实施例的流程图。
图3为本发明网络服务器之间的数据传输处理系统一个实施例的结构示意图。
图4为本发明网络服务器之间的数据传输处理系统一个示例性的应用架构图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1为本发明网络服务器之间的数据传输处理方法一个实施例的流程图,其中的网络服务器包括请求端服务器和业务端服务器。如图1所示,该实施例网络服务器之间的数据传输处理方法包括:
110,请求端服务器依次从通信队列选取一个待传输数据包作为当前数据包,并计算当前数据包的大小。
120,请求端服务器根据预先设置的大小标准判断当前数据包的大小属性,其中,数据包的大小属性包括大数据包或小数据包,即:判断当前数据包属于大数据包或小数据包。
130,请求端服务器基于预先设置的协议确定策略和当前数据包的大小属性,确定当前数据包传输采用的通信协议;以及基于预先设置的交互模型确定策略,根据当前数据包的大小属性确定当前数据包的通信通道,在当前数据包为小数据包时,选取长连接的通信通道作为当前数据包的通信通道,在当前数据包为大数据包时,选取长连接的通信通道以外的另外一个通信通道作为当前数据包的通信通道。
其中的交互模型包括长连接和短连接,其中,长连接的通信通道在请求端服务器与业务端服务器的多次完整交互之间保持连接(即:网络连接保持),由于长连接到通信通道在连通后不断开,可在多次交互中重复利用,从而可以减少创建连接本身的损耗;短连接的通信通道在请求端服务器与业务端服务器之间进行交互时临时建立并在每次完整交互后断开网络连接,在下一次交互时再重新建立网络连接。
140,请求端服务器根据确定的通信协议对当前数据包进行编码,得到编码数据流,并通过上述确定的通信通道向业务端服务器传输该编码数据流。
150,业务端服务器接收通信通道中的编码数据流并进行解码和数据读取,以及根据读取到的数据进行相应的业务处理。
基于本发明上述实施例提供的网络服务器之间的数据传输处理方法,将大数据包通过新的通信通道和小数据包进行分流,使大数据包和小数据包的交互互不影响,每一个大数据包的交互都不会阻碍其他业务请求的小数据包交互,这样网络服务器之间的每一次的数据交互都可以流畅进行,避免大数据包导致的数据拥塞,将延迟和超时降到最低,从而提升了网络交互中的数据传输效率和响应效率,提高了业务处理效率和数据吞吐量。
本发明实施例中的每一个通信通道可以采用双向双通道模式也可以采用单向双通道模式。在单向双通道模式下,只有一个请求端服务器指向一个业务端服务器的通信通道,请求端服务器通过该通信通道向业务端服务器发送业务请求数据包,业务端服务器反馈的响应数据包也通过相同通信通道传输给请求端服务器;在双向双通道模式下,有一个请求端服务器到业务端服务器的通信通道,同时有另一个业务端服务器到请求端服务器的通信通道,请求端服务器到业务端服务器的通信通道负责传输请求端服务器发送的业务请求数据包,业务端服务器到请求端服务器的通信通道负责向请求端服务器反馈响应数据包。
本发明上述实施例中的另外一个通信通道可以是长连接的通信通道,也可以是短连接的通信通道。
在其中一种情况中,另外一个通信通道为长连接的通信通道。相应地,在上述实施例的操作140中,在通过确定的通信通道向业务端服务器传输编码数据流之前,请求端服务器判断与业务端服务器之间是否建立了确定的通信通道,若尚未建立确定的通信通道,则先与业务端服务器之间建立确定的通信通道,然后再通过上述确定的通信通道向业务端服务器传输该编码数据流。
在另一种情况中,另外一个通信通道为短连接的通信通道。相应地,在上述实施例的操作140中,若当前数据包为小数据包,在通过确定的通信通道向业务端服务器传输编码数据流之前,请求端服务器判断与业务端服务器之间是否建立了长连接的通信通道,若尚未建立长连接的通信通道,则先与业务端服务器之间建立长连接的通信通道;若当前数据包为大数据包,在通过确定的通信通道向业务端服务器传输编码数据流之前,请求端服务器与业务端服务器之间先建立短连接的通信通道,并在编码数据流传输完毕后,拆除该短连接的通信通道。
在本发明上述数据传输处理方法的另一个实施例中,操作130中基于预先设置的协议确定策略和当前数据包的大小属性,确定当前数据包传输采用的通信协议时,具体可以基于预先设置的协议确定策略,根据当前数据包的大小和当前数据包内包含的对象类型,为当前数据包选择传输控制协议(TCP)四层以下(包括互联网络层和网络接口层)的通信协议。
例如,在一个具体示例中,若当前数据包为大数据包且包含序列化的私有对象,为当前数据包选择附加应用属性(即:定义信息格式和传输内容)的协议作为TCP四层以下的通信协议。对于包含序列化的私有对象的大数据包,选用附加应用属性的协议传输,业务端服务器可以基于通信协议定义的信息格式和传输内容进行协议解析,使数据传输效率上更能得到保障,例如,Java远程方法调用协议在调用包含私有对象的大数据包时性能远远高于其他协议。
图2为本发明网络服务器之间的数据传输处理方法另一个实施例的流程图。
210,请求端服务器依次从通信队列选取一个待传输数据包作为当前数据包,并计算当前数据包的大小。
220,请求端服务器根据预先设置的大小标准判断当前数据包的大小属性,其中,数据包的大小属性包括大数据包或小数据包,即:判断当前数据包属于大数据包或小数据包。
230,请求端服务器基于预先设置的协议确定策略和当前数据包的大小属性,确定当前数据包传输采用的通信协议;以及基于预先设置的交互模型确定策略,根据当前数据包的大小属性确定当前数据包的通信通道,在当前数据包为小数据包时,选取长连接的双向通道模式通道作为当前数据包的通信通道,在当前数据包为大数据包时,选取短连接的双向通道模式通道作为当前数据包的通信通道。
240,请求端服务器根据确定的通信协议对当前数据包进行编码,得到编码数据流,为该编码数据流分配线程资源,通过确定的通信通道向业务端服务器传输编码数据流,并按照预设时长进行超时监控。
250,若超过预设时长未成功发送编码数据流或者未接收到相应的响应消息,请求端服务器释放等待业务端服务器进行结果响应的线程资源,以提高线程资源利用率。
若未出现上述超时未成功发送编码数据流或者未接收到相应的响应消息,则不执行250的操作。
260,业务端服务器通过请求受理线程接收通信通道中的编码数据流,并转发给业务端服务器的数据读写和协议编码解析线程。
270,数据读写和协议编码解析线程对接收到的编码数据流进行协议解析、解码和数据读取,并将读取到的数据转发给业务端服务器的业务处理线程。
280,业务处理线程根据接收到的数据进行相应的业务处理。
通过操作260~280,业务端服务器将一次通信消息接收逻辑处理线程分成3个阶段来实施:请求受理线程,数据读写和协议编码解析线程,业务处理线程,可以让各类线程对数据流进行专业的流水处理,各司其职,互不竞争,相互隔离,每个线程都可以不断的处理接收到的数据,三个线程可以并行处理多个通信数据,处理效率更高效。其中,数据读写和协议编码解析线程、业务处理线程都是以线程池的方式设置,这样,通信通道中传输的数据在多线程作用下能很快的被处理,并及时的送到后端业务处理线程中进行处理,使通道中的数据包最大限度的得到处理响应。
本发明上述实施例中,由于小数据包走长连接的通信通道,例如,单向双通道模式通道,节约了开辟通道的时间损耗;并且该且通信通道可以复用,不同的业务请求的小数据包可以通过长连接的单向双通道模式的通信通道传输。另外,由于业务端服务器采用了多线程操作机制,小数据包IO在大多数情况较为迅速,在通道中能被快速的传输,不会阻塞通道中的其它数据传输,且通道保证了线程安全,从而提升了业务处理性能。
大数据包走短连接的通信通道,例如,单向双通道模式通道,可以避免通道的拥塞。在大数据包传输的时候,如果选择与小数据包在同一个长连接的通信通道中传输,将会导致网络数据传输大大延时、超时等情况出现。例如某一次大数据包在长连接的通信通道中传输的时候,需要很多次数据包交互,且每次都会耗时过长,导致其他业务请求的数据包都会堆积在队列或者通信通道中,最终导致其他请求的延迟,超时甚至通道异常,这势必导致应用服务器之间的交互性能低下,降低用户体验。通过上述实施例使大数据包通过心的通信通道和小数据包进行分流,使交互互不影响,每一个大数据包的交互都会从池中选择一个交互对象进行连接(即:不会占用原有的活动的长连接的通信通道,而是从连接池中选择一个新的连接的通信通道)并不会阻碍其他业务请求的数据交互,这样网络中每一次的数据交互都可以流畅的交互,将延迟和超时降到最低。
在业务端服务器业务处理完以后,将携带处理结果的数据通过响应消息返回请求端服务器时,由于通过将数据读写和协议编码解析线程和业务处理线程分离(即:将IO和业务线程池分离),使得业务处理效率不影响数据传输效率,提高了通信通道中的数据处理效率,从而减少了阻塞等待时间。
本发明实施例中可以预先设置协议确定策略和交互模型,在具体的业务过程中,请求端服务器可以统计每次业务交互的数据量、输入输出(IO)参数和业务处理时长,据此调整协议确定策略和交互模型确定策略。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图3为本发明网络服务器之间的数据传输处理系统一个实施例的结构示意图。该实施例的系统可用于实现本发明上述各方法实施例。如图3所示,其包括请求端服务器和业务端服务器。其中:
请求端服务器,用于依次从通信队列选取一个待传输数据包作为当前数据包,并计算当前数据包的大小;根据预先设置大小标准判断当前数据包的大小属性,其中,数据包的大小属性包括大数据包或小数据包;基于预先设置的协议确定策略和当前数据包的大小属性,确定当前数据包传输采用的通信协议;以及基于预先设置的交互模型确定策略,根据当前数据包的大小属性确定当前数据包的通信通道,在当前数据包为小数据包时,选取长连接的通信通道作为当前数据包的通信通道,在当前数据包为大数据包时,选取长连接的通信通道以外的另外一个通信通道作为当前数据包的通信通道;以及根据确定的通信协议对当前数据包进行编码,得到编码数据流,并通过确定的通信通道向业务端服务器传输编码数据流。示例性地,其中的每一个通信通道可以采用双向双通道模式或单向双通道模式。
业务端服务器,用于接收通信通道中的编码数据流并进行解码和数据读取,以及根据读取到的数据进行相应的业务处理。
再参见图3,在上述数据传输处理系统的一个具体实施例中,请求端服务器可以包括业务请求单元、计算单元、协议确定单元、通道确定单元和发送处理单元。其中:
业务请求单元,用于根据需要发送的业务请求将待传输数据包放入通信队列。
计算单元,用于依次从通信队列选取一个待传输数据包作为当前数据包,计算当前数据包的大小,并根据预先设置大小标准判断当前数据包的大小属性,其中,数据包的大小属性包括大数据包或小数据包。
协议确定单元,用于基于预先设置的协议确定策略和计算单元确定的当前数据包的大小属性,确定当前数据包传输采用的通信协议。
通道确定单元,用于基于预先设置的交互模型确定策略,根据计算单元确定的当前数据包的大小属性确定当前数据包的通信通道,在当前数据包为小数据包时,选取长连接的通信通道作为当前数据包的通信通道,在当前数据包为大数据包时,选取长连接的通信通道以外的另外一个通信通道作为当前数据包的通信通道。
发送处理单元,用于根据协议确定单元确定的通信协议对当前数据包进行编码,得到编码数据流,并通过通道确定单元确定的通信通道向业务端服务器传输编码数据流。
本发明上述系统实施例中的另外一个通信通道可以是长连接的通信通道,也可以是短连接的通信通道。
在一个具体示例中,另外一个通信通道为长连接的通信通道。相应地,在该实施例中,发送处理单元还用于在通过确定的通信通道向业务端服务器传输编码数据流之前,判断与业务端服务器之间是否建立了确定的通信通道,若尚未建立确定的通信通道,则先与业务端服务器之间建立确定的通信通道,然后再通过确定的通信通道向业务端服务器传输编码数据流。
在另一个具体示例中,另外一个通信通道为短连接的通信通道。相应地,在该实施例中,若当前数据包为小数据包,发送处理单元还用于在通过确定的通信通道向业务端服务器传输编码数据流之前,判断与业务端服务器之间是否建立了长连接的通信通道,若尚未建立长连接的通信通道,则先与业务端服务器之间建立长连接的通信通道,然后再通过确定的通信通道向业务端服务器传输编码数据流。若当前数据包为大数据包,发送处理单元还用于在通过确定的通信通道向业务端服务器传输编码数据流之前,先与业务端服务器之间建立短连接的通信通道,再通过确定的通信通道向业务端服务器传输编码数据流;以及在编码数据流传输完毕后,拆除短连接的通信通道。
在本发明上述数据传输处理系统的另一个实施例中,协议确定单元具体用于基于预先设置的协议确定策略,根据当前数据包的大小和当前数据包内包含的对象类型,为当前数据包选择TCP四层以下的通信协议。例如,在当前数据包为大数据包且包含序列化的私有对象时,为当前数据包选择附加应用属性的协议作为TCP四层以下的通信协议。
在本发明上述数据传输处理系统的又一个实施例中,发送处理单元通过确定的通信通道向业务端服务器传输编码数据流时,具体为编码数据流分配线程资源,通过确定的通信通道向业务端服务器传输编码数据流,并按照预设时长进行超时监控,若超过预设时长未成功发送编码数据流或者未接收到相应的响应消息,释放线程资源中的业务处理线程资源。
进一步地,再参见图3,在本发明上述数据传输处理系统的再一个实施例中,业务端服务器具体可以包括接收处理单元和业务处理单元,其中,接收处理单元包括请求受理线程和数据读写和协议编码解析线程,业务处理单元包括业务处理线程。其中:
请求受理线程,用于接收通信通道中的编码数据流,并转发给数据读写和协议编码解析线程。
数据读写和协议编码解析线程,用于对接收到的编码数据流进行协议解析、解码和数据读取,并将读取到的数据转发给业务处理线程。
业务处理线程,用于根据接收到的数据进行相应的业务处理。
如图4所示,为本发明网络服务器之间的数据传输处理系统一个示例性的应用架构图。图4中,Keep-alive connection表示长连接的通信通道,Short connection表示短连接的通信通道;监听器用于监测是否接收到编码数据流,接收器为请求受理线程功能,线程池用于实现数据读写和协议编码解析线程功能,Server BS Tier用于实现业务处理线程功能。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本发明的方法、系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (18)
1.一种网络服务器之间的数据传输处理方法,所述网络服务器包括请求端服务器和业务端服务器,其特征在于,所述方法包括:
请求端服务器依次从通信队列选取一个待传输数据包作为当前数据包,并计算当前数据包的大小;
请求端服务器根据预先设置的大小标准判断所述当前数据包的大小属性,其中,数据包的大小属性包括大数据包或小数据包;
请求端服务器基于预先设置的协议确定策略和当前数据包的大小属性,确定当前数据包传输采用的通信协议;以及基于预先设置的交互模型确定策略,根据当前数据包的大小属性确定当前数据包的通信通道,在当前数据包为小数据包时,选取长连接的通信通道作为当前数据包的通信通道,在当前数据包为大数据包时,选取所述长连接的通信通道以外的另外一个通信通道作为当前数据包的通信通道;
请求端服务器根据确定的通信协议对当前数据包进行编码,得到编码数据流,并通过确定的通信通道向业务端服务器传输所述编码数据流;
业务端服务器接收所述通信通道中的编码数据流并进行解码和数据读取,以及根据读取到的数据进行相应的业务处理。
2.根据权利要求1所述的方法,其特征在于,所述通信通道采用单向双通道模式或双向双通道模式。
3.根据权利要求2所述的方法,其特征在于,所述另外一个通信通道为长连接的通信通道;
在通过确定的通信通道向业务端服务器传输所述编码数据流之前,还包括:请求端服务器判断与业务端服务器之间是否建立了所述确定的通信通道,若尚未建立所述确定的通信通道,则先与业务端服务器之间建立所述确定的通信通道。
4.根据权利要求2所述的方法,其特征在于,所述另外一个通信通道为短连接的通信通道;
若当前数据包为小数据包,在通过确定的通信通道向业务端服务器传输所述编码数据流之前,还包括:请求端服务器判断与业务端服务器之间是否建立了长连接的通信通道,若尚未建立长连接的通信通道,则先与业务端服务器之间建立长连接的通信通道;
若当前数据包为大数据包,在通过确定的通信通道向业务端服务器传输所述编码数据流之前,还包括:请求端服务器与业务端服务器之间建立短连接的通信通道,以及在所述编码数据流传输完毕后,拆除所述短连接的通信通道。
5.根据权利要求3或4所述的方法,其特征在于,所述基于预先设置的协议确定策略和当前数据包的大小属性,确定当前数据包传输采用的通信协议包括:
基于预先设置的协议确定策略,根据当前数据包的大小和当前数据包内包含的对象类型,为当前数据包选择传输控制协议TCP四层以下的通信协议。
6.根据权利要求5所述的方法,其特征在于,所述根据当前数据包的大小和当前数据包内包含的对象类型,为当前数据包选择TCP四层以下的通信协议包括:
若当前数据包为大数据包且包含序列化的私有对象,为当前数据包选择附加应用属性的协议作为TCP四层以下的通信协议。
7.根据权利要求3或4所述的方法,其特征在于,所述通过确定的通信通道向业务端服务器传输所述编码数据流包括:
请求端服务器为所述编码数据流分配线程资源,通过确定的通信通道向业务端服务器传输所述编码数据流,并按照预设时长进行超时监控,若超过预设时长未成功发送所述编码数据流或者未接收到相应的响应消息,释放线程资源中的业务处理线程资源。
8.根据权利要求3或4所述的方法,其特征在于,业务端服务器接收所述通信通道中的编码数据流并进行解码和数据读取,以及根据读取到的数据进行相应的业务处理包括:
业务端服务器通过请求受理线程接收所述通信通道中的编码数据流,并转发给业务端服务器的数据读写和协议编码解析线程;
数据读写和协议编码解析线程对接收到的编码数据流进行协议解析、解码和数据读取,并将读取到的数据转发给业务端服务器的业务处理线程;
业务处理线程根据接收到的数据进行相应的业务处理。
9.根据权利要求8所述的方法,其特征在于,还包括:
请求端服务器统计每次业务交互的数据量、输入输出IO参数和业务处理时长,调整所述协议确定策略和交互模型确定策略。
10.一种网络服务器之间的数据传输处理系统,其特征在于,包括请求端服务器和业务端服务器;其中:
所述请求端服务器,用于依次从通信队列选取一个待传输数据包作为当前数据包,并计算当前数据包的大小;根据预先设置大小标准判断所述当前数据包的大小属性,其中,数据包的大小属性包括大数据包或小数据包;基于预先设置的协议确定策略和当前数据包的大小属性,确定当前数据包传输采用的通信协议;以及基于预先设置的交互模型确定策略,根据当前数据包的大小属性确定当前数据包的通信通道,在当前数据包为小数据包时,选取长连接的通信通道作为当前数据包的通信通道,在当前数据包为大数据包时,选取所述长连接的通信通道以外的另外一个通信通道作为当前数据包的通信通道;以及根据确定的通信协议对当前数据包进行编码,得到编码数据流,并通过确定的通信通道向业务端服务器传输所述编码数据流;
所述业务端服务器,用于接收所述通信通道中的编码数据流并进行解码和数据读取,以及根据读取到的数据进行相应的业务处理。
11.根据权利要求10所述的系统,其特征在于,所述通信通道采用单向双通道模式或双向双通道模式。
12.根据权利要求11所述的系统,其特征在于,所述请求端服务器包括:
业务请求单元,用于根据需要发送的业务请求将待传输数据包放入通信队列;
计算单元,用于依次从通信队列选取一个待传输数据包作为当前数据包,计算当前数据包的大小,并根据预先设置大小标准判断所述当前数据包的大小属性,其中,数据包的大小属性包括大数据包或小数据包;
协议确定单元,用于基于预先设置的协议确定策略和计算单元确定的当前数据包的大小属性,确定当前数据包传输采用的通信协议;
通道确定单元,用于基于预先设置的交互模型确定策略,根据计算单元确定的当前数据包的大小属性确定当前数据包的通信通道,在当前数据包为小数据包时,选取长连接的通信通道作为当前数据包的通信通道,在当前数据包为大数据包时,选取所述长连接的通信通道以外的另外一个通信通道作为当前数据包的通信通道;
发送处理单元,用于根据协议确定单元确定的通信协议对当前数据包进行编码,得到编码数据流,并通过通道确定单元确定的通信通道向业务端服务器传输所述编码数据流。
13.根据权利要求12所述的系统,其特征在于,所述另外一个通信通道为长连接的通信通道;
所述发送处理单元,还用于在通过确定的通信通道向业务端服务器传输所述编码数据流之前,判断与业务端服务器之间是否建立了所述确定的通信通道,若尚未建立所述确定的通信通道,则先与业务端服务器之间建立所述确定的通信通道,然后再通过确定的通信通道向业务端服务器传输所述编码数据流。
14.根据权利要求12所述的系统,其特征在于,所述另外一个通信通道为短连接的通信通道;
若当前数据包为小数据包,所述发送处理单元,还用于在通过确定的通信通道向业务端服务器传输所述编码数据流之前,判断与业务端服务器之间是否建立了长连接的通信通道,若尚未建立长连接的通信通道,则先与业务端服务器之间建立长连接的通信通道,然后再通过确定的通信通道向业务端服务器传输所述编码数据流;
若当前数据包为大数据包,所述发送处理单元,还用于在通过确定的通信通道向业务端服务器传输所述编码数据流之前,先与业务端服务器之间建立短连接的通信通道,再通过确定的通信通道向业务端服务器传输所述编码数据流;以及在所述编码数据流传输完毕后,拆除所述短连接的通信通道。
15.根据权利要求13或14所述的系统,其特征在于,所述协议确定单元,具体用于基于预先设置的协议确定策略,根据当前数据包的大小和当前数据包内包含的对象类型,为当前数据包选择传输控制协议TCP四层以下的通信协议。
16.根据权利要求15所述的系统,其特征在于,所述协议确定单元,具体在当前数据包为大数据包且包含序列化的私有对象时,为当前数据包选择附加应用属性的协议作为TCP四层以下的通信协议。
17.根据权利要求13或14所述的系统,其特征在于,所述发送处理单元通过确定的通信通道向业务端服务器传输所述编码数据流时,具体为所述编码数据流分配线程资源,通过确定的通信通道向业务端服务器传输所述编码数据流,并按照预设时长进行超时监控,若超过预设时长未成功发送所述编码数据流或者未接收到相应的响应消息,释放所述线程资源中的业务处理线程资源。
18.根据权利要求13或14所述的系统,其特征在于,所述业务端服务器包括接收处理单元和业务处理单元,其中,接收处理单元包括请求受理线程和数据读写和协议编码解析线程,业务处理单元包括业务处理线程;
所述请求受理线程,用于接收所述通信通道中的编码数据流,并转发给数据读写和协议编码解析线程;
所述数据读写和协议编码解析线程,用于对接收到的编码数据流进行协议解析、解码和数据读取,并将读取到的数据转发给业务处理线程;
所述业务处理线程,用于根据接收到的数据进行相应的业务处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410376720.8A CN105323183B (zh) | 2014-08-01 | 2014-08-01 | 网络服务器之间的数据传输处理方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410376720.8A CN105323183B (zh) | 2014-08-01 | 2014-08-01 | 网络服务器之间的数据传输处理方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105323183A CN105323183A (zh) | 2016-02-10 |
CN105323183B true CN105323183B (zh) | 2019-05-10 |
Family
ID=55249798
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410376720.8A Active CN105323183B (zh) | 2014-08-01 | 2014-08-01 | 网络服务器之间的数据传输处理方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105323183B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628706B (zh) * | 2018-05-02 | 2021-08-17 | 北京新桥信通科技股份有限公司 | 数据备份的方法、装置、系统及存储介质 |
CN111049751B (zh) * | 2019-12-10 | 2022-12-13 | 深圳赛安特技术服务有限公司 | 数据传输优化方法、装置、设备及可读存储介质 |
CN111881139B (zh) * | 2020-07-29 | 2022-07-08 | 北京浪潮数据技术有限公司 | 一种数据获取的方法、系统、设备及可读存储介质 |
CN112422698B (zh) * | 2021-01-25 | 2021-06-22 | 游密科技(深圳)有限公司 | 通信连接方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7006526B1 (en) * | 2001-07-31 | 2006-02-28 | Cisco Technology, Inc. | Mechanisms for avoiding problems associated with network address protocol translation |
CN1878072A (zh) * | 2005-06-09 | 2006-12-13 | 腾讯科技(深圳)有限公司 | 基于群组的通信方法及系统 |
CN101283555A (zh) * | 2005-10-04 | 2008-10-08 | 艾利森电话股份有限公司 | 使用适当的通信协议提供消息传送的方法 |
CN102546808A (zh) * | 2012-01-17 | 2012-07-04 | 深圳天源迪科信息技术股份有限公司 | 服务端基于tcp的交互处理方法 |
CN102833750A (zh) * | 2011-06-16 | 2012-12-19 | 中兴通讯股份有限公司 | 消息传输方法及装置 |
CN103023987A (zh) * | 2012-11-27 | 2013-04-03 | 蓝盾信息安全技术股份有限公司 | 一种基于tcp连接的多路复用的方法 |
CN103457865A (zh) * | 2012-05-28 | 2013-12-18 | 北京山海经纬信息技术有限公司 | 一种通信装置和多协议多信道分层数据传输的方法 |
-
2014
- 2014-08-01 CN CN201410376720.8A patent/CN105323183B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7006526B1 (en) * | 2001-07-31 | 2006-02-28 | Cisco Technology, Inc. | Mechanisms for avoiding problems associated with network address protocol translation |
CN1878072A (zh) * | 2005-06-09 | 2006-12-13 | 腾讯科技(深圳)有限公司 | 基于群组的通信方法及系统 |
CN101283555A (zh) * | 2005-10-04 | 2008-10-08 | 艾利森电话股份有限公司 | 使用适当的通信协议提供消息传送的方法 |
CN102833750A (zh) * | 2011-06-16 | 2012-12-19 | 中兴通讯股份有限公司 | 消息传输方法及装置 |
CN102546808A (zh) * | 2012-01-17 | 2012-07-04 | 深圳天源迪科信息技术股份有限公司 | 服务端基于tcp的交互处理方法 |
CN103457865A (zh) * | 2012-05-28 | 2013-12-18 | 北京山海经纬信息技术有限公司 | 一种通信装置和多协议多信道分层数据传输的方法 |
CN103023987A (zh) * | 2012-11-27 | 2013-04-03 | 蓝盾信息安全技术股份有限公司 | 一种基于tcp连接的多路复用的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105323183A (zh) | 2016-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108270732B (zh) | 一种流媒体处理方法及系统 | |
KR101921015B1 (ko) | 데이터 통신 시스템 내에서의 데이터 패킷들의 전달 방법 | |
CN105323183B (zh) | 网络服务器之间的数据传输处理方法与系统 | |
CN105743822B (zh) | 一种处理报文的方法及装置 | |
CN112437122A (zh) | 通信方法、装置、计算机可读介质及电子设备 | |
CN111147184B (zh) | 支持多业务抢占续传的以太网发送、接收设备及传输装置 | |
US8379517B2 (en) | Call admission and preemption for multiple bit-rate applications | |
CN104618253B (zh) | 一种动态变更的传输报文处理方法和装置 | |
WO2013075446A1 (zh) | 处理业务的方法和系统 | |
JP7011941B2 (ja) | クライアント及び受信方法 | |
WO2012151920A1 (zh) | 业务传输方法和装置 | |
CN109547162A (zh) | 基于两套单向边界的数据通信方法 | |
CN107613302A (zh) | 解码方法及装置、存储介质、处理器 | |
CN106533954A (zh) | 一种报文调度方法和装置 | |
CN104580209A (zh) | 实现多平台消息处理的装置及方法 | |
CN110086797A (zh) | 媒体流的实时接收方法及客户端 | |
CN104243412B (zh) | 网络数据处理终端及在其中处理网络数据的方法 | |
CN111431812A (zh) | 一种报文转发控制方法及装置 | |
CN111858099A (zh) | 消息订阅方法及装置 | |
CN109040790A (zh) | 数据加解密方法、装置及电子设备 | |
CN105488008B (zh) | 数据实时传输方法 | |
CN105450543B (zh) | 语音数据传输方法 | |
CN108366306A (zh) | 一种基于嵌入式设备的码流传输的控制方法 | |
CN114416275A (zh) | 一种实现多个管理客户端同步虚拟机状态的方法及系统 | |
KR102113641B1 (ko) | 소프트웨어 정의 네트워크 시스템에서 다중 중요도 모드에 따른 패킷 스케줄링 방법, 그 방법을 구현한 컴퓨터프로그램 및 그 방법을 수행하는 스위치 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |