数据传输方法及装置制造方法及图纸

技术编号:12962615 阅读:30 留言:0更新日期:2016-03-03 04:45
本发明专利技术公开了一种数据传输方法及装置,该方法中间件分配第一线程将数据发送至客户端或数据库之后,便释放该第一线程,使该第一线程转变为空闲状态,以便分配给其他客户端或处理其他业务,同时,中间件会在监听到客户端和数据库之间出现指定的网络事件后,为客户端和数据库重新分配第二线程以进行数据的传输,从而,不仅节省了中间件内有限的线程资源为客户端和数据库间的数据传输提供数据服务,也有效提升了线程的利用率。

【技术实现步骤摘要】

本专利技术涉及计算机
,尤其涉及一种数据传输方法及装置
技术介绍
随着信息技术的发展,用户通过客户端可以访问互联网以获取所需的各类数据。互联网中各类数据存储在不同的数据库(如MySQL数据库、Oracle数据库等)中,也就是说用户通过网络途径访问相应的数据库来获取所需的数据。在现有技术中,通常在数据库和客户端之间设置有中间件(一种数据中转设备),以管理数据库与大量客户端之间的连接交互,并为各客户端提供数据服务,即客户端与数据库之间通过中间件进行数据传输。中间件中含有多个提供数据服务的线程,每一个线程会被分配给一个客户端,为该客户端提供数据服务,当一个线程接收了一个客户端的数据请求后,该线程会将该数据请求转发至数据库,并等待数据库对该数据请求进行处理的结果,之后,该线程再把结果反馈至发出数据请求的客户端中。但是,数据库会接收到大量的数据请求,并行处理数据请求的数量有限,也就是说,线程将数据请求转发给数据库后,数据请求可能处于等待队列中,而且,数据库对数据请求进行处理本身会需要一定的时间(几秒至几十秒不等),不能够立刻就生成处理结果,那么在这段时间中,线程会一直处于等待状态(该状态下,线程不能处理其他业务),直到接收到数据库反馈的处理的结果,再将该结果转发至客户端后,才能为其他客户端提供数据服务或处理其他业务,因此,造成了线程资源的浪费,也导致了线程利用率低。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的数据传输方法及装置,能够有效节约现有的客户端和数据库之间在进行数据通信的过程中所使用的线程,提升了线程的利用率。根据本专利技术的第一个方面,提出一种数据传输方法,用于在客户端与服务器之间通过中间件进行数据传输,该方法包括:所述中间件为所述客户端和数据库分配第一线程,使所述客户端和数据库通过所述第一线程传输数据;所述中间件在所述线程完成所述数据的传输后,释放该第一线程;监听所述客户端和数据库的网络事件;当监听到指定网络事件后,重新为所述客户端和数据库分配第二线程。可选地,所述数据包括:所述客户端向所数据库发送的第一数据,或,所述数据库向所述客户端发送的第二数据;所述指定网络事件包括:所述数据库根据所述第一数据生成第一响应数据的网络事件,或,所述客户端根据所述第二数据生成第二响应数据的网络事件。可选地,当监听到指定网络事件后,重新为所述客户端和数据库分配第二线程,具体包括:当监听到所述数据库根据所述第一数据生成所述第一响应数据的网络事件时,所述中间件重新为所述客户端和数据库分配第二线程,使所述数据库通过重新分配的第二线程将该第一响应数据传输至所述客户端;或者当监听到所述客户端根据所述第二数据生成所述第二响应数据时,所述中间件重新为所述客户端和数据库分配第二线程,使所述客户端通过重新分配的第二线程将该第二响应数据传输至所述数据库。可选地,所述指定网络事件还包括:所述客户端或数据库的存储空间未饱和的网络事件;当监听到指定网络事件后,重新为所述客户端和数据库分配第二线程,具体包括:当监听到所述数据库根据所述第一数据生成所述第一响应数据的网络事件,以及所述客户端的存储空间未饱和的网络事件时,所述中间件重新为所述客户端和数据库分配第二线程,使所述数据库通过重新分配的第二线程将该第一响应数据传输至所述客户端;或者当监听到所述客户端根据所述第二数据生成第二响应数据的网络事件,以及所述数据库的存储空间未饱和的网络事件时,所述中间件重新为所述客户端和数据库分配第二线程,使所述客户端通过重新分配的第二线程将该第二响应数据传输至所述数据库。可选地,重新为所述客户端和数据库分配第二线程,具体包括:将所述客户端和数据库传输所述数据所使用的第一线程作为第二线程,重新分配给所述客户端和数据库。根据本专利技术的第二个方面,提出一种数据传输装置,用于在客户端和服务器进行数据传输,所述装置包括:第一分配模块、释放模块、监听模块以及第二分配模块,其中,所述第一分配模块,用于为所述客户端和数据库分配第一线程,使所述客户端和数据库通过所述第一线程传输数据;所述释放模块,用于在所述线程完成所述数据的传输后,释放该第一线程;所述监听模块,用于监听所述客户端和数据库的网络事件;所述第二分配模块,用于当监听到指定网络事件后,重新为所述客户端和数据库分配第二线程。可选地,所述数据包括:所述客户端向所数据库发送的第一数据,或,所述数据库向所述客户端发送的第二数据;所述指定网络事件包括:所述数据库根据所述第一数据生成第一响应数据的网络事件,或,所述客户端根据所述第二数据生成第二响应数据的网络事件。可选地,所述第二分配模块,具体用于:当监听到所述数据库根据所述第一数据生成所述第一响应数据的网络事件时,重新为所述客户端和数据库分配第二线程,使所述数据库通过重新分配的第二线程将该第一响应数据传输至所述客户端;或者当监听到所述客户端根据所述第二数据生成所述第二响应数据时,重新为所述客户端和数据库分配第二线程,使所述客户端通过重新分配的第二线程将该第二响应数据传输至所述数据库。可选地,所述指定网络事件还包括:所述客户端或数据库的存储空间未饱和的网络事件;所述第二分配模块,具体用于:当监听到所述数据库根据所述第一数据生成所述第一响应数据的网络事件,以及所述客户端的存储空间未饱和的网络事件时,重新为所述客户端和数据库分配第二线程,使所述数据库通过重新分配的第二线程将该第一响应数据传输至所述客户端;或者当监听到所述客户端根据所述第二数据生成第二响应数据的网络事件,以及所述数据库的存储空间未饱和的网络事件时,重新为所述客户端和数据库分配第二线程,使所述客户端通过重新分配的第二线程将该第二响应数据传输至所述数据库。可选地,所述第二分配模块,具体用于:将所述客户端和数据库传输所述数据所使用的第一线程作为第二线程,重新分配给所述客户端和数据库。根据本专利技术提供的线程管理方法,中间件分配第一线程将数据发送至客户端或数据库之后,便释放该第一线程,使该第一线程转变为空闲状态,以便分配给其他客户端或处理其他业务,同时,中间件会在监听到客户端和数据库之间出现指定的网络事件后,为客户端和数据库重新分配第二线程以进行数据的传输,从而,不仅节省了中间件内有限的线程资源为客户端和数据库间的数据传输提供数据服务,也有效提升了线程的利用率。【附图说明】通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1为依据本专利技术一个实施例的数据传输方法流程示意图;图2至5分别为依据本专利技术一个实施例在实际应用场景中客户端、中间件以及数据库的连接架构示意图;当前第1页1 2 3 4 5 本文档来自技高网...

【技术保护点】
一种数据传输方法,用于在客户端与服务器之间通过中间件进行数据传输,所述方法包括:所述中间件为所述客户端和数据库分配第一线程,使所述客户端和数据库通过所述第一线程传输数据;所述中间件在所述第一线程完成所述数据的传输后,释放该第一线程;监听所述客户端和数据库的网络事件;当监听到指定网络事件后,重新为所述客户端和数据库分配第二线程。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈非王超朱超
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1